From 06ca2759167f8ea0cdaf34db41d5a4c2cf98b75a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Tue, 26 Apr 2011 15:42:46 +0100 Subject: [PATCH 1/4] Revert lockfree GstBus for the release Drop in old GstBus code for the release to play it safe, since regressions that are apparently hard to track down and reproduce have been reported (on windows/OSX mostly) against the lockfree version, and more time is needed to fix them. This reverts commit 03391a897001d35d1d290f27dd12e98a8b729fb4. This reverts commit 43cdbc17e6f944cdf02aeed78d1d5f6bde5190c9. This reverts commit 80eb160e0f62350271f061daa5f289d9d4277cf4. This reverts commit c41b0ade28790ffdb0e484b41cd7929c4e145dec. This reverts commit 874d60e5899dd5b89854679d1a4ad016a58ba4e0. This reverts commit 79370d4b1781af9c9a65f2d1e3498124d8c4c413. This reverts commit 2cb3e5235196eb71fb25e0a4a4b8749d6d0a8453. This reverts commit bd1c40011434c1efaa696dc98ef855ef9cce9b28. This reverts commit 4bf8f1524f6e3374b3f3bc57322337723d06b928. This reverts commit 14d7db1b527b05f029819057aef5c123ac7e013d. https://bugzilla.gnome.org/show_bug.cgi?id=647493 --- gst/gst_private.h | 1 + gst/gstbin.c | 2 +- gst/gstbus.c | 213 ++++++++++++++++++++++------------------------ gst/gstbus.h | 3 +- 4 files changed, 105 insertions(+), 114 deletions(-) diff --git a/gst/gst_private.h b/gst/gst_private.h index da8a50a80c..2cafbee611 100644 --- a/gst/gst_private.h +++ b/gst/gst_private.h @@ -123,6 +123,7 @@ gboolean priv_gst_structure_append_to_gstring (const GstStructure * structure, gboolean gst_registry_binary_read_cache (GstRegistry * registry, const char *location); gboolean gst_registry_binary_write_cache (GstRegistry * registry, const char *location); + /* used in gstvalue.c and gststructure.c */ #define GST_ASCII_IS_STRING(c) (g_ascii_isalnum((c)) || ((c) == '_') || \ ((c) == '-') || ((c) == '+') || ((c) == '/') || ((c) == ':') || \ diff --git a/gst/gstbin.c b/gst/gstbin.c index d4375f843c..73758213e9 100644 --- a/gst/gstbin.c +++ b/gst/gstbin.c @@ -540,7 +540,7 @@ gst_bin_init (GstBin * bin, GstBinClass * klass) bin->clock_dirty = FALSE; /* Set up a bus for listening to child elements */ - bus = g_object_new (GST_TYPE_BUS, "enable-async", FALSE, NULL); + bus = gst_bus_new (); bin->child_bus = bus; GST_DEBUG_OBJECT (bin, "using bus %" GST_PTR_FORMAT " to listen to children", bus); diff --git a/gst/gstbus.c b/gst/gstbus.c index caff420ed1..bca4558016 100644 --- a/gst/gstbus.c +++ b/gst/gstbus.c @@ -75,7 +75,6 @@ #include #include "gstinfo.h" -#include "gstpoll.h" #include "gstbus.h" @@ -89,27 +88,19 @@ enum LAST_SIGNAL }; -#define DEFAULT_ENABLE_ASYNC (TRUE) - -enum -{ - PROP_0, - PROP_ENABLE_ASYNC -}; - static void gst_bus_dispose (GObject * object); +static void gst_bus_set_main_context (GstBus * bus, GMainContext * ctx); + static GstObjectClass *parent_class = NULL; static guint gst_bus_signals[LAST_SIGNAL] = { 0 }; struct _GstBusPrivate { guint num_sync_message_emitters; + GCond *queue_cond; GSource *watch_id; - - gboolean enable_async; - GstPoll *poll; - GPollFD pollfd; + GMainContext *main_context; }; G_DEFINE_TYPE (GstBus, gst_bus, GST_TYPE_OBJECT); @@ -142,33 +133,6 @@ marshal_VOID__MINIOBJECT (GClosure * closure, GValue * return_value, callback (data1, gst_value_get_mini_object (param_values + 1), data2); } -static void -gst_bus_set_property (GObject * object, - guint prop_id, const GValue * value, GParamSpec * pspec) -{ - GstBus *bus = GST_BUS_CAST (object); - - switch (prop_id) { - case PROP_ENABLE_ASYNC: - bus->priv->enable_async = g_value_get_boolean (value); - break; - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); - break; - } -} - -static void -gst_bus_constructed (GObject * object) -{ - GstBus *bus = GST_BUS_CAST (object); - - if (bus->priv->enable_async) { - bus->priv->poll = gst_poll_new_timer (); - gst_poll_get_read_gpollfd (bus->priv->poll, &bus->priv->pollfd); - } -} - static void gst_bus_class_init (GstBusClass * klass) { @@ -177,25 +141,6 @@ gst_bus_class_init (GstBusClass * klass) parent_class = g_type_class_peek_parent (klass); gobject_class->dispose = gst_bus_dispose; - gobject_class->set_property = gst_bus_set_property; - gobject_class->constructed = gst_bus_constructed; - - /* GstBus:enable-async: - * - * Enable async message delivery support for bus watches, - * gst_bus_pop() and similar API. Without this only the - * synchronous message handlers are called. - * - * This property is used to create the child element buses - * in #GstBin. - * - * Since: 0.10.33 - */ - g_object_class_install_property (gobject_class, PROP_ENABLE_ASYNC, - g_param_spec_boolean ("enable-async", "Enable Async", - "Enable async message delivery for bus watches and gst_bus_pop()", - DEFAULT_ENABLE_ASYNC, - G_PARAM_CONSTRUCT_ONLY | G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); /** * GstBus::sync-message: @@ -239,11 +184,11 @@ gst_bus_class_init (GstBusClass * klass) static void gst_bus_init (GstBus * bus) { - bus->queue = gst_atomic_queue_new (32); + bus->queue = g_queue_new (); bus->queue_lock = g_mutex_new (); bus->priv = G_TYPE_INSTANCE_GET_PRIVATE (bus, GST_TYPE_BUS, GstBusPrivate); - bus->priv->enable_async = DEFAULT_ENABLE_ASYNC; + bus->priv->queue_cond = g_cond_new (); GST_DEBUG_OBJECT (bus, "created"); } @@ -258,24 +203,63 @@ gst_bus_dispose (GObject * object) g_mutex_lock (bus->queue_lock); do { - message = gst_atomic_queue_pop (bus->queue); + message = g_queue_pop_head (bus->queue); if (message) gst_message_unref (message); } while (message != NULL); - gst_atomic_queue_unref (bus->queue); + g_queue_free (bus->queue); bus->queue = NULL; g_mutex_unlock (bus->queue_lock); g_mutex_free (bus->queue_lock); bus->queue_lock = NULL; + g_cond_free (bus->priv->queue_cond); + bus->priv->queue_cond = NULL; + } - if (bus->priv->poll) - gst_poll_free (bus->priv->poll); - bus->priv->poll = NULL; + if (bus->priv->main_context) { + g_main_context_unref (bus->priv->main_context); + bus->priv->main_context = NULL; } G_OBJECT_CLASS (parent_class)->dispose (object); } +static void +gst_bus_wakeup_main_context (GstBus * bus) +{ + GMainContext *ctx; + + GST_OBJECT_LOCK (bus); + if ((ctx = bus->priv->main_context)) + g_main_context_ref (ctx); + GST_OBJECT_UNLOCK (bus); + + g_main_context_wakeup (ctx); + + if (ctx) + g_main_context_unref (ctx); +} + +static void +gst_bus_set_main_context (GstBus * bus, GMainContext * ctx) +{ + GST_OBJECT_LOCK (bus); + + if (bus->priv->main_context != NULL) { + g_main_context_unref (bus->priv->main_context); + bus->priv->main_context = NULL; + } + + if (ctx != NULL) { + bus->priv->main_context = g_main_context_ref (ctx); + } + + GST_DEBUG_OBJECT (bus, "setting main context to %p, GLib default context: %p", + ctx, g_main_context_default ()); + + GST_OBJECT_UNLOCK (bus); +} + /** * gst_bus_new: * @@ -342,11 +326,6 @@ gst_bus_post (GstBus * bus, GstMessage * message) && handler != gst_bus_sync_signal_handler) gst_bus_sync_signal_handler (bus, message, NULL); - /* If this is a bus without async message delivery - * always drop the message */ - if (!bus->priv->poll) - reply = GST_BUS_DROP; - /* now see what we should do with the message */ switch (reply) { case GST_BUS_DROP: @@ -356,10 +335,14 @@ gst_bus_post (GstBus * bus, GstMessage * message) case GST_BUS_PASS: /* pass the message to the async queue, refcount passed in the queue */ GST_DEBUG_OBJECT (bus, "[msg %p] pushing on async queue", message); - gst_atomic_queue_push (bus->queue, message); - gst_poll_write_control (bus->priv->poll); + g_mutex_lock (bus->queue_lock); + g_queue_push_tail (bus->queue, message); + g_cond_broadcast (bus->priv->queue_cond); + g_mutex_unlock (bus->queue_lock); GST_DEBUG_OBJECT (bus, "[msg %p] pushed on async queue", message); + gst_bus_wakeup_main_context (bus); + break; case GST_BUS_ASYNC: { @@ -377,9 +360,12 @@ gst_bus_post (GstBus * bus, GstMessage * message) * queue. When the message is handled by the app and destroyed, * the cond will be signalled and we can continue */ g_mutex_lock (lock); + g_mutex_lock (bus->queue_lock); + g_queue_push_tail (bus->queue, message); + g_cond_broadcast (bus->priv->queue_cond); + g_mutex_unlock (bus->queue_lock); - gst_atomic_queue_push (bus->queue, message); - gst_poll_write_control (bus->priv->poll); + gst_bus_wakeup_main_context (bus); /* now block till the message is freed */ g_cond_wait (cond, lock); @@ -427,8 +413,10 @@ gst_bus_have_pending (GstBus * bus) g_return_val_if_fail (GST_IS_BUS (bus), FALSE); + g_mutex_lock (bus->queue_lock); /* see if there is a message on the bus */ - result = gst_atomic_queue_length (bus->queue) != 0; + result = !g_queue_is_empty (bus->queue); + g_mutex_unlock (bus->queue_lock); return result; } @@ -494,24 +482,18 @@ gst_bus_timed_pop_filtered (GstBus * bus, GstClockTime timeout, GstMessageType types) { GstMessage *message; - GTimeVal now, then; + GTimeVal *timeval, abstimeout; gboolean first_round = TRUE; g_return_val_if_fail (GST_IS_BUS (bus), NULL); g_return_val_if_fail (types != 0, NULL); - g_return_val_if_fail (timeout == 0 || bus->priv->poll != NULL, NULL); g_mutex_lock (bus->queue_lock); while (TRUE) { - gint ret; + GST_LOG_OBJECT (bus, "have %d messages", g_queue_get_length (bus->queue)); - GST_LOG_OBJECT (bus, "have %d messages", - gst_atomic_queue_length (bus->queue)); - - while ((message = gst_atomic_queue_pop (bus->queue))) { - if (bus->priv->poll) - gst_poll_read_control (bus->priv->poll); + while ((message = g_queue_pop_head (bus->queue))) { GST_DEBUG_OBJECT (bus, "got message %p, %s, type mask is %u", message, GST_MESSAGE_TYPE_NAME (message), (guint) types); if ((GST_MESSAGE_TYPE (message) & types) != 0) { @@ -528,30 +510,28 @@ gst_bus_timed_pop_filtered (GstBus * bus, GstClockTime timeout, if (timeout == 0) break; - else if (timeout != GST_CLOCK_TIME_NONE) { - if (first_round) { - g_get_current_time (&then); - first_round = FALSE; - } else { - GstClockTime elapsed; + if (timeout == GST_CLOCK_TIME_NONE) { + /* wait forever */ + timeval = NULL; + } else if (first_round) { + glong add = timeout / 1000; - g_get_current_time (&now); + if (add == 0) + /* no need to wait */ + break; - elapsed = GST_TIMEVAL_TO_TIME (now) - GST_TIMEVAL_TO_TIME (then); - if (timeout > elapsed) - timeout -= elapsed; - else - timeout = 0; - } + /* make timeout absolute */ + g_get_current_time (&abstimeout); + g_time_val_add (&abstimeout, add); + timeval = &abstimeout; + first_round = FALSE; + GST_DEBUG_OBJECT (bus, "blocking for message, timeout %ld", add); + } else { + /* calculated the absolute end time already, no need to do it again */ + GST_DEBUG_OBJECT (bus, "blocking for message, again"); + timeval = &abstimeout; /* fool compiler */ } - - /* only here in timeout case */ - g_assert (bus->priv->poll); - g_mutex_unlock (bus->queue_lock); - ret = gst_poll_wait (bus->priv->poll, timeout); - g_mutex_lock (bus->queue_lock); - - if (ret == 0) { + if (!g_cond_timed_wait (bus->priv->queue_cond, bus->queue_lock, timeval)) { GST_INFO_OBJECT (bus, "timed out, breaking loop"); break; } else { @@ -664,7 +644,7 @@ gst_bus_peek (GstBus * bus) g_return_val_if_fail (GST_IS_BUS (bus), NULL); g_mutex_lock (bus->queue_lock); - message = gst_atomic_queue_peek (bus->queue); + message = g_queue_peek_head (bus->queue); if (message) gst_message_ref (message); g_mutex_unlock (bus->queue_lock); @@ -722,13 +702,24 @@ typedef struct { GSource source; GstBus *bus; + gboolean inited; } GstBusSource; static gboolean gst_bus_source_prepare (GSource * source, gint * timeout) { + GstBusSource *bsrc = (GstBusSource *) source; + + /* we do this here now that we know that we're attached to a main context + * (we don't support detaching a source from a main context and then + * re-attaching it to a different main context) */ + if (G_UNLIKELY (!bsrc->inited)) { + gst_bus_set_main_context (bsrc->bus, g_source_get_context (source)); + bsrc->inited = TRUE; + } + *timeout = -1; - return FALSE; + return gst_bus_have_pending (bsrc->bus); } static gboolean @@ -736,7 +727,7 @@ gst_bus_source_check (GSource * source) { GstBusSource *bsrc = (GstBusSource *) source; - return bsrc->bus->priv->pollfd.revents & (G_IO_IN | G_IO_HUP | G_IO_ERR); + return gst_bus_have_pending (bsrc->bus); } static gboolean @@ -798,6 +789,7 @@ gst_bus_source_finalize (GSource * source) bus->priv->watch_id = NULL; GST_OBJECT_UNLOCK (bus); + gst_bus_set_main_context (bsource->bus, NULL); gst_object_unref (bsource->bus); bsource->bus = NULL; } @@ -825,12 +817,11 @@ gst_bus_create_watch (GstBus * bus) GstBusSource *source; g_return_val_if_fail (GST_IS_BUS (bus), NULL); - g_return_val_if_fail (bus->priv->poll != NULL, NULL); source = (GstBusSource *) g_source_new (&gst_bus_source_funcs, sizeof (GstBusSource)); source->bus = gst_object_ref (bus); - g_source_add_poll ((GSource *) source, &bus->priv->pollfd); + source->inited = FALSE; return (GSource *) source; } diff --git a/gst/gstbus.h b/gst/gstbus.h index 732591f27a..30afe6006a 100644 --- a/gst/gstbus.h +++ b/gst/gstbus.h @@ -28,7 +28,6 @@ typedef struct _GstBusClass GstBusClass; #include #include -#include G_BEGIN_DECLS @@ -116,7 +115,7 @@ struct _GstBus GstObject object; /*< private >*/ - GstAtomicQueue *queue; + GQueue *queue; GMutex *queue_lock; GstBusSyncHandler sync_handler; From b8c541a0e2b3e291d41e85a9d61427765c474a86 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 27 Apr 2011 11:49:11 +0100 Subject: [PATCH 2/4] 0.10.32.3 pre-release --- configure.ac | 2 +- docs/plugins/inspect/plugin-coreelements.xml | 2 +- docs/plugins/inspect/plugin-coreindexers.xml | 2 +- po/bg.po | 23 ++++++++++---------- po/nl.po | 19 ++++++++-------- po/pl.po | 17 +++++++-------- po/ru.po | 20 +++++++---------- win32/common/config.h | 8 +++---- win32/common/gstversion.h | 2 +- 9 files changed, 44 insertions(+), 51 deletions(-) diff --git a/configure.ac b/configure.ac index 7f8c3db616..bdb0945d97 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.32.2, +AC_INIT(GStreamer, 0.10.32.3, http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer, gstreamer) AG_GST_INIT diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml index 41c43f502e..14397ca427 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.32.2 + 0.10.32.3 LGPL gstreamer GStreamer prerelease diff --git a/docs/plugins/inspect/plugin-coreindexers.xml b/docs/plugins/inspect/plugin-coreindexers.xml index 31b1908af5..65122d10c9 100644 --- a/docs/plugins/inspect/plugin-coreindexers.xml +++ b/docs/plugins/inspect/plugin-coreindexers.xml @@ -3,7 +3,7 @@ GStreamer core indexers ../../plugins/indexers/.libs/libgstcoreindexers.so libgstcoreindexers.so - 0.10.32.2 + 0.10.32.3 LGPL gstreamer GStreamer prerelease diff --git a/po/bg.po b/po/bg.po index 004d8e93a7..0d297fe236 100644 --- a/po/bg.po +++ b/po/bg.po @@ -1,15 +1,15 @@ # Bulgarian translation of gstreamer. -# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010 Free Software Fondation, Inc. +# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Fondation, Inc. # This file is distributed under the same license as the gstreamer package. -# Alexander Shopov , 2005, 2006, 2007, 2008, 2009, 2010. +# Alexander Shopov , 2005, 2006, 2007, 2008, 2009, 2010, 2011. # # msgid "" msgstr "" -"Project-Id-Version: gstreamer 0.10.30.3\n" +"Project-Id-Version: gstreamer 0.10.32.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-04-16 14:53+0100\n" -"PO-Revision-Date: 2010-11-04 14:22+0200\n" +"POT-Creation-Date: 2011-04-27 11:27+0100\n" +"PO-Revision-Date: 2011-04-26 22:40+0300\n" "Last-Translator: Alexander Shopov \n" "Language-Team: Bulgarian \n" "Language: bg\n" @@ -109,8 +109,8 @@ msgid "" "GStreamer error: state change failed and some element failed to post a " "proper error message with the reason for the failure." msgstr "" -"Грешка на GStreamer: неуспех при промяната на състоянието, а някой от " -"елементите пропусна да подаде съобщение за грешка с причината за това." +"Грешка на GStreamer: неуспешна промяна на състоянието, а някой от елементите " +"пропусна да подаде съобщение за грешка с причината за това." msgid "Internal GStreamer error: pad problem." msgstr "Вътрешна грешка на GStreamer: проблем в допълването." @@ -406,12 +406,11 @@ msgstr "адрес за авторски права" msgid "URI to the copyright notice of the data" msgstr "адрес на означението на авторските права на данните" -#, fuzzy msgid "encoded by" -msgstr "кодер" +msgstr "кодирано от" msgid "name of the encoding person or organization" -msgstr "" +msgstr "име на човека или организацията извършващи кодирането" msgid "contact" msgstr "контакт" @@ -1056,7 +1055,7 @@ msgid "WARNING: element named '%s' not found.\n" msgstr "ПРЕДУПРЕЖДЕНИЕ: елементът на име „%s“ не е открит.\n" msgid "Index statistics" -msgstr "" +msgstr "Статистика на индекса" #, c-format msgid "Got message #%u from element \"%s\" (%s): " @@ -1167,7 +1166,7 @@ msgstr "" "Принудително извеждане на EOS за източниците преди спирането на конвейера" msgid "Gather and print index statistics" -msgstr "" +msgstr "Събиране и показване на статистика за индекса" #, c-format msgid "ERROR: pipeline could not be constructed: %s.\n" diff --git a/po/nl.po b/po/nl.po index fb6fdb8162..beea5857d4 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,17 +1,17 @@ -# translation of gstreamer-0.10.30.3.po to Dutch +# translation of gstreamer-0.10.32.2.po to Dutch # Dutch translation of gstreamer # Copyright (C) 2003-2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This file is distributed under the same license as the gstreamer package. # # Thomas Vander Stichele , 2004. # Taco Witte , 2006. -# Freek de Kruijf , 2007, 2008, 2009, 2010. +# Freek de Kruijf , 2007, 2008, 2009, 2010, 2011. msgid "" msgstr "" -"Project-Id-Version: gstreamer 0.10.30.3\n" +"Project-Id-Version: gstreamer 0.10.32.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-04-16 14:53+0100\n" -"PO-Revision-Date: 2010-10-25 19:10+0200\n" +"POT-Creation-Date: 2011-04-27 11:27+0100\n" +"PO-Revision-Date: 2011-04-26 23:10+0200\n" "Last-Translator: Freek de Kruijf \n" "Language-Team: Dutch \n" "Language: nl\n" @@ -410,12 +410,11 @@ msgstr "auteursrecht-uri" msgid "URI to the copyright notice of the data" msgstr "URI naar de auteursrechtvermelding van de gegevens" -#, fuzzy msgid "encoded by" -msgstr "encoder" +msgstr "gecodeerd door" msgid "name of the encoding person or organization" -msgstr "" +msgstr "naam van de coderende persoon of organisatie" msgid "contact" msgstr "contact" @@ -1064,7 +1063,7 @@ msgid "WARNING: element named '%s' not found.\n" msgstr "WAARSCHUWING: element met naam '%s' niet gevonden.\n" msgid "Index statistics" -msgstr "" +msgstr "Indexstatistieken" #, c-format msgid "Got message #%u from element \"%s\" (%s): " @@ -1172,7 +1171,7 @@ msgid "Force EOS on sources before shutting the pipeline down" msgstr "Forceer een EOS op de bron bij het afsluiten van de pijplijn" msgid "Gather and print index statistics" -msgstr "" +msgstr "Verzamel en print indexstatistieken" #, c-format msgid "ERROR: pipeline could not be constructed: %s.\n" diff --git a/po/pl.po b/po/pl.po index 7ecff6da48..5f3860b1f5 100644 --- a/po/pl.po +++ b/po/pl.po @@ -1,13 +1,13 @@ # Polish translation for gstreamer. # This file is distributed under the same license as the gstreamer package. -# Jakub Bogusz , 2007-2010. +# Jakub Bogusz , 2007-2011. # msgid "" msgstr "" -"Project-Id-Version: gstreamer 0.10.30.3\n" +"Project-Id-Version: gstreamer 0.10.32.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-04-16 14:53+0100\n" -"PO-Revision-Date: 2010-10-24 18:54+0200\n" +"POT-Creation-Date: 2011-04-27 11:27+0100\n" +"PO-Revision-Date: 2011-04-26 17:54+0200\n" "Last-Translator: Jakub Bogusz \n" "Language-Team: Polish \n" "Language: pl\n" @@ -403,12 +403,11 @@ msgstr "URI praw autorskich" msgid "URI to the copyright notice of the data" msgstr "URI do informacji o prawach autorskich do tych danych" -#, fuzzy msgid "encoded by" -msgstr "koder" +msgstr "kodujący" msgid "name of the encoding person or organization" -msgstr "" +msgstr "nazwa osoby lub organizacji kodującej nagranie" msgid "contact" msgstr "kontakt" @@ -1058,7 +1057,7 @@ msgid "WARNING: element named '%s' not found.\n" msgstr "UWAGA: nie znaleziono elementu o nazwie '%s'.\n" msgid "Index statistics" -msgstr "" +msgstr "Statystyki indeksu" #, c-format msgid "Got message #%u from element \"%s\" (%s): " @@ -1166,7 +1165,7 @@ msgid "Force EOS on sources before shutting the pipeline down" msgstr "Wymuszanie EOS na źródłach przed zamknięciem potoku" msgid "Gather and print index statistics" -msgstr "" +msgstr "Zebranie i wypisanie statystyk indeksu" #, c-format msgid "ERROR: pipeline could not be constructed: %s.\n" diff --git a/po/ru.po b/po/ru.po index 0eac5055a4..1ad44b1697 100644 --- a/po/ru.po +++ b/po/ru.po @@ -4,13 +4,13 @@ # Peter Astakhov , 2005. # Артём Попов , 2009. # Pavel Maryanov , 2009. -# Yuri Kozlov , 2010. +# Yuri Kozlov , 2010, 2011. msgid "" msgstr "" -"Project-Id-Version: gstreamer-0.10.30.3\n" +"Project-Id-Version: gstreamer-0.10.32.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-04-16 14:53+0100\n" -"PO-Revision-Date: 2010-10-25 14:54+0400\n" +"POT-Creation-Date: 2011-04-27 11:27+0100\n" +"PO-Revision-Date: 2011-04-26 20:25+0400\n" "Last-Translator: Yuri Kozlov \n" "Language-Team: Russian \n" "Language: ru\n" @@ -406,12 +406,11 @@ msgstr "URI авторских прав" msgid "URI to the copyright notice of the data" msgstr "URI уведомления об авторских правах" -#, fuzzy msgid "encoded by" -msgstr "кодировщик" +msgstr "Кодирование выполнено" msgid "name of the encoding person or organization" -msgstr "" +msgstr "Имя человека или название организации, выполнявшей кодировку" msgid "contact" msgstr "контакт" @@ -1058,7 +1057,7 @@ msgid "WARNING: element named '%s' not found.\n" msgstr "ПРЕДУПРЕЖДЕНИЕ: элемент с именем «%s» не найден.\n" msgid "Index statistics" -msgstr "" +msgstr "Индексная статистика" #, c-format msgid "Got message #%u from element \"%s\" (%s): " @@ -1166,7 +1165,7 @@ msgid "Force EOS on sources before shutting the pipeline down" msgstr "Выдать EOS в источники перед закрытием конвейера" msgid "Gather and print index statistics" -msgstr "" +msgstr "Собрать и вывести индексную статистику" #, c-format msgid "ERROR: pipeline could not be constructed: %s.\n" @@ -1287,9 +1286,6 @@ msgstr "Освобождение конвейера...\n" #~ msgid "Added path %s to %s \n" #~ msgstr "Добавлен путь %s к %s \n" -#~ msgid "Rebuilding %s (%s) ...\n" -#~ msgstr "Перестариваю %s (%s) ...\n" - #~ msgid "Trying to load %s ...\n" #~ msgstr "Пытаюсь загрузить %s ...\n" diff --git a/win32/common/config.h b/win32/common/config.h index 756fc529ea..7283a4c200 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-04-16T12:48Z" +#define GST_PACKAGE_RELEASE_DATETIME "2011-04-27T09:14Z" /* location of the installed gst-plugin-scanner */ #define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\gst-plugin-scanner" @@ -340,7 +340,7 @@ #define PACKAGE_NAME "GStreamer" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GStreamer 0.10.32.2" +#define PACKAGE_STRING "GStreamer 0.10.32.3" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gstreamer" @@ -349,7 +349,7 @@ #undef PACKAGE_URL /* Define to the version of this package. */ -#define PACKAGE_VERSION "0.10.32.2" +#define PACKAGE_VERSION "0.10.32.3" /* directory where plugins are located */ #ifdef _DEBUG @@ -380,7 +380,7 @@ #undef USE_POISONING /* Version number of package */ -#define VERSION "0.10.32.2" +#define VERSION "0.10.32.3" /* 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/gstversion.h b/win32/common/gstversion.h index 558dceb2f6..d376bcfc04 100644 --- a/win32/common/gstversion.h +++ b/win32/common/gstversion.h @@ -64,7 +64,7 @@ G_BEGIN_DECLS * The nano version of GStreamer at compile time: * Actual releases have 0, GIT versions have 1, prerelease versions have 2-... */ -#define GST_VERSION_NANO (2) +#define GST_VERSION_NANO (3) /** * GST_CHECK_VERSION: From 1ebff8a510355c759621a0e170cc7a27eb6c89d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Fri, 29 Apr 2011 23:44:55 +0100 Subject: [PATCH 3/4] pluginfeature: include plugin.h in header where we use a GstPlugin pointer Should fix issue with gstreamermm build where is included directly instead of gst/gst.h. --- gst/gstpluginfeature.h | 1 + 1 file changed, 1 insertion(+) diff --git a/gst/gstpluginfeature.h b/gst/gstpluginfeature.h index b731a86710..c24be4f759 100644 --- a/gst/gstpluginfeature.h +++ b/gst/gstpluginfeature.h @@ -26,6 +26,7 @@ #include #include +#include G_BEGIN_DECLS From 11ac49e6c4d6a90b8ef55c66772d5a217de95d94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= Date: Sat, 30 Apr 2011 16:55:36 +0100 Subject: [PATCH 4/4] 0.10.32.4 pre-release --- configure.ac | 2 +- docs/plugins/inspect/plugin-coreelements.xml | 2 +- docs/plugins/inspect/plugin-coreindexers.xml | 2 +- .../plugins/inspect/plugin-staticelements.xml | 12 ------------ po/de.po | 17 ++++++++--------- po/fr.po | 19 +++++++++---------- win32/common/config.h | 8 ++++---- win32/common/gstversion.h | 2 +- 8 files changed, 25 insertions(+), 39 deletions(-) delete mode 100644 docs/plugins/inspect/plugin-staticelements.xml diff --git a/configure.ac b/configure.ac index bdb0945d97..274505e55c 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.32.3, +AC_INIT(GStreamer, 0.10.32.4, http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer, gstreamer) AG_GST_INIT diff --git a/docs/plugins/inspect/plugin-coreelements.xml b/docs/plugins/inspect/plugin-coreelements.xml index 14397ca427..b7ca01a07f 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.32.3 + 0.10.32.4 LGPL gstreamer GStreamer prerelease diff --git a/docs/plugins/inspect/plugin-coreindexers.xml b/docs/plugins/inspect/plugin-coreindexers.xml index 65122d10c9..2ff2118770 100644 --- a/docs/plugins/inspect/plugin-coreindexers.xml +++ b/docs/plugins/inspect/plugin-coreindexers.xml @@ -3,7 +3,7 @@ GStreamer core indexers ../../plugins/indexers/.libs/libgstcoreindexers.so libgstcoreindexers.so - 0.10.32.3 + 0.10.32.4 LGPL gstreamer GStreamer prerelease diff --git a/docs/plugins/inspect/plugin-staticelements.xml b/docs/plugins/inspect/plugin-staticelements.xml deleted file mode 100644 index 75b81e9831..0000000000 --- a/docs/plugins/inspect/plugin-staticelements.xml +++ /dev/null @@ -1,12 +0,0 @@ - - staticelements core elements linked into the GStreamer library 0.10.29.1 LGPL gstreamer GStreamer git Unknown package origin - - bin Generic bin Generic/Bin Simple container object Erik Walthinsen <omega@cse.ogi.edu>,Wim Taymans <wim.taymans@gmail.com> - - - - pipeline Pipeline object Generic/Bin Complete pipeline object Erik Walthinsen <omega@cse.ogi.edu>, Wim Taymans <wim@fluendo.com> - - - - diff --git a/po/de.po b/po/de.po index c6aba8dbbc..daa837177b 100644 --- a/po/de.po +++ b/po/de.po @@ -3,14 +3,14 @@ # This file is distributed under the same license as the gstreamer package. # # Roland Illig , 2004. -# Christian Kirbach , 2009, 2010. +# Christian Kirbach , 2009, 2010, 2011. # msgid "" msgstr "" -"Project-Id-Version: gstreamer 0.10.30.3\n" +"Project-Id-Version: gstreamer 0.10.32.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-04-16 14:53+0100\n" -"PO-Revision-Date: 2010-10-25 00:05+0200\n" +"POT-Creation-Date: 2011-04-30 15:35+0100\n" +"PO-Revision-Date: 2011-04-27 23:44+0200\n" "Last-Translator: Christian Kirbach \n" "Language-Team: German \n" "Language: de\n" @@ -420,12 +420,11 @@ msgstr "Copyright-URI" msgid "URI to the copyright notice of the data" msgstr "URI zu der Copyrightangabe der Daten" -#, fuzzy msgid "encoded by" -msgstr "Codierer" +msgstr "codiert durch" msgid "name of the encoding person or organization" -msgstr "" +msgstr "Der Name der codierenden Person oder Organisation" msgid "contact" msgstr "Kontakt" @@ -1076,7 +1075,7 @@ msgid "WARNING: element named '%s' not found.\n" msgstr "WARNUNG: Element namens »%s« nicht gefunden.\n" msgid "Index statistics" -msgstr "" +msgstr "Index-Statistiken" #, c-format msgid "Got message #%u from element \"%s\" (%s): " @@ -1188,7 +1187,7 @@ msgid "Force EOS on sources before shutting the pipeline down" msgstr "EOS auf Quelle vor dem Beenden der Leitung erzwingen" msgid "Gather and print index statistics" -msgstr "" +msgstr "Index-Statistiken sammeln und ausgeben" #, c-format msgid "ERROR: pipeline could not be constructed: %s.\n" diff --git a/po/fr.po b/po/fr.po index d3ddc64662..4891afe858 100644 --- a/po/fr.po +++ b/po/fr.po @@ -1,16 +1,16 @@ # Translation of GStreamer to French -# Copyright (C) 2003-2010 GStreamer core team +# Copyright (C) 2003-2011 GStreamer core team # This file is distributed under the same license as the gstreamer package. # # Thomas Vander Stichele , 2004. -# Claude Paroz , 2008-2010. +# Claude Paroz , 2008-2011. # msgid "" msgstr "" -"Project-Id-Version: gstreamer 0.10.30.3\n" +"Project-Id-Version: gstreamer 0.10.32.2\n" "Report-Msgid-Bugs-To: http://bugzilla.gnome.org/\n" -"POT-Creation-Date: 2011-04-16 14:53+0100\n" -"PO-Revision-Date: 2010-10-27 08:47+0200\n" +"POT-Creation-Date: 2011-04-30 15:35+0100\n" +"PO-Revision-Date: 2011-04-28 09:34+0200\n" "Last-Translator: Claude Paroz \n" "Language-Team: French \n" "Language: fr\n" @@ -407,12 +407,11 @@ msgstr "URI du copyright" msgid "URI to the copyright notice of the data" msgstr "URI vers l'information de copyright des données" -#, fuzzy msgid "encoded by" -msgstr "codeur" +msgstr "codé par" msgid "name of the encoding person or organization" -msgstr "" +msgstr "nom de la personne ou de l'organisation qui a effectué le codage" msgid "contact" msgstr "contact" @@ -1063,7 +1062,7 @@ msgid "WARNING: element named '%s' not found.\n" msgstr "AVERTISSEMENT : l'élément nommé « %s » est introuvable.\n" msgid "Index statistics" -msgstr "" +msgstr "Statistiques d'index" #, c-format msgid "Got message #%u from element \"%s\" (%s): " @@ -1171,7 +1170,7 @@ msgid "Force EOS on sources before shutting the pipeline down" msgstr "Force l'EOS sur les sources avant de fermer le pipeline" msgid "Gather and print index statistics" -msgstr "" +msgstr "Rassemble et affiche les statistiques d'index" #, c-format msgid "ERROR: pipeline could not be constructed: %s.\n" diff --git a/win32/common/config.h b/win32/common/config.h index 7283a4c200..fad9156990 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-04-27T09:14Z" +#define GST_PACKAGE_RELEASE_DATETIME "2011-04-30T14:22Z" /* location of the installed gst-plugin-scanner */ #define GST_PLUGIN_SCANNER_INSTALLED LIBDIR "\\gst-plugin-scanner" @@ -340,7 +340,7 @@ #define PACKAGE_NAME "GStreamer" /* Define to the full name and version of this package. */ -#define PACKAGE_STRING "GStreamer 0.10.32.3" +#define PACKAGE_STRING "GStreamer 0.10.32.4" /* Define to the one symbol short name of this package. */ #define PACKAGE_TARNAME "gstreamer" @@ -349,7 +349,7 @@ #undef PACKAGE_URL /* Define to the version of this package. */ -#define PACKAGE_VERSION "0.10.32.3" +#define PACKAGE_VERSION "0.10.32.4" /* directory where plugins are located */ #ifdef _DEBUG @@ -380,7 +380,7 @@ #undef USE_POISONING /* Version number of package */ -#define VERSION "0.10.32.3" +#define VERSION "0.10.32.4" /* 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/gstversion.h b/win32/common/gstversion.h index d376bcfc04..8b749c484d 100644 --- a/win32/common/gstversion.h +++ b/win32/common/gstversion.h @@ -64,7 +64,7 @@ G_BEGIN_DECLS * The nano version of GStreamer at compile time: * Actual releases have 0, GIT versions have 1, prerelease versions have 2-... */ -#define GST_VERSION_NANO (3) +#define GST_VERSION_NANO (4) /** * GST_CHECK_VERSION: