tests/examples/seek/seek.c: Make sure bus signals are reconnected when pressing STOP and then PLAY again for a parse ...

Original commit message from CVS:
2008-02-08  Julien Moutte  <julien@fluendo.com>

* tests/examples/seek/seek.c: (stop_cb), (connect_bus_signals),
(main): Make sure bus signals are reconnected when pressing STOP
and then PLAY again for a parse launch pipeline. Fix a ref leak
on the bus.
* win32/common/config.h: Updated.
This commit is contained in:
Julien Moutte 2008-02-08 14:34:41 +00:00
parent 9dff2ee0e6
commit 4f26ec3cfd
4 changed files with 48 additions and 33 deletions

View File

@ -1,3 +1,11 @@
2008-02-08 Julien Moutte <julien@fluendo.com>
* tests/examples/seek/seek.c: (stop_cb), (connect_bus_signals),
(main): Make sure bus signals are reconnected when pressing STOP
and then PLAY again for a parse launch pipeline. Fix a ref leak
on the bus.
* win32/common/config.h: Updated.
2008-02-08 Jan Schmidt <jan.schmidt@sun.com> 2008-02-08 Jan Schmidt <jan.schmidt@sun.com>
* configure.ac: * configure.ac:

2
common

@ -1 +1 @@
Subproject commit 8b37d7ee833fab1d25b484d8574df3dae231b5f2 Subproject commit df7f73bd454e0b0ee7870d8c85874aba9329fd2e

View File

@ -1112,7 +1112,7 @@ update_scale (gpointer data)
} }
static void do_seek (GtkWidget * widget); static void do_seek (GtkWidget * widget);
static void connect_bus_signals (GstElement * pipeline);
static void set_update_scale (gboolean active); static void set_update_scale (gboolean active);
static gboolean static gboolean
@ -1372,6 +1372,7 @@ stop_cb (GtkButton * button, gpointer data)
pipeline = pipelines[pipeline_type].func (pipeline_spec); pipeline = pipelines[pipeline_type].func (pipeline_spec);
g_assert (pipeline); g_assert (pipeline);
gst_element_set_state (pipeline, GST_STATE_READY); gst_element_set_state (pipeline, GST_STATE_READY);
connect_bus_signals (pipeline);
} }
} }
return; return;
@ -1595,6 +1596,38 @@ msg_segment_done (GstBus * bus, GstMessage * message, GstPipeline * pipeline)
g_print ("segment seek failed\n"); g_print ("segment seek failed\n");
} }
static void
connect_bus_signals (GstElement * pipeline)
{
GstBus *bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
g_signal_connect (bus, "message::state-changed",
(GCallback) msg_state_changed, pipeline);
g_signal_connect (bus, "message::segment-done", (GCallback) msg_segment_done,
pipeline);
g_signal_connect (bus, "message::async-done", (GCallback) msg_async_done,
pipeline);
g_signal_connect (bus, "message::new-clock", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::error", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::warning", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::eos", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::tag", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::element", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::segment-done", (GCallback) message_received,
pipeline);
gst_object_unref (bus);
}
static void static void
print_usage (int argc, char **argv) print_usage (int argc, char **argv)
{ {
@ -1815,34 +1848,8 @@ main (int argc, char **argv)
g_signal_connect (pipeline, "deep_notify", g_signal_connect (pipeline, "deep_notify",
G_CALLBACK (gst_object_default_deep_notify), NULL); G_CALLBACK (gst_object_default_deep_notify), NULL);
} }
{
GstBus *bus;
bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline)); connect_bus_signals (pipeline);
gst_bus_add_signal_watch_full (bus, G_PRIORITY_HIGH);
g_signal_connect (bus, "message::state-changed",
(GCallback) msg_state_changed, pipeline);
g_signal_connect (bus, "message::segment-done",
(GCallback) msg_segment_done, pipeline);
g_signal_connect (bus, "message::async-done",
(GCallback) msg_async_done, pipeline);
g_signal_connect (bus, "message::new-clock", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::error", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::warning", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::eos", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::tag", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::element", (GCallback) message_received,
pipeline);
g_signal_connect (bus, "message::segment-done",
(GCallback) message_received, pipeline);
}
gtk_main (); gtk_main ();
g_print ("NULL pipeline\n"); g_print ("NULL pipeline\n");

View File

@ -39,7 +39,7 @@
#define GST_LICENSE "LGPL" #define GST_LICENSE "LGPL"
/* package name in plugins */ /* package name in plugins */
#define GST_PACKAGE_NAME "GStreamer Base Plug-ins source release" #define GST_PACKAGE_NAME "GStreamer Base Plug-ins CVS/prerelease"
/* package origin */ /* package origin */
#define GST_PACKAGE_ORIGIN "Unknown package origin" #define GST_PACKAGE_ORIGIN "Unknown package origin"
@ -211,13 +211,13 @@
#define PACKAGE_NAME "GStreamer Base Plug-ins" #define PACKAGE_NAME "GStreamer Base Plug-ins"
/* Define to the full name and version of this package. */ /* Define to the full name and version of this package. */
#define PACKAGE_STRING "GStreamer Base Plug-ins 0.10.17" #define PACKAGE_STRING "GStreamer Base Plug-ins 0.10.17.1"
/* Define to the one symbol short name of this package. */ /* Define to the one symbol short name of this package. */
#define PACKAGE_TARNAME "gst-plugins-base" #define PACKAGE_TARNAME "gst-plugins-base"
/* Define to the version of this package. */ /* Define to the version of this package. */
#define PACKAGE_VERSION "0.10.17" #define PACKAGE_VERSION "0.10.17.1"
/* directory where plugins are located */ /* directory where plugins are located */
#undef PLUGINDIR #undef PLUGINDIR
@ -241,7 +241,7 @@
#undef STDC_HEADERS #undef STDC_HEADERS
/* Version number of package */ /* Version number of package */
#define VERSION "0.10.17" #define VERSION "0.10.17.1"
/* Define to 1 if your processor stores words with the most significant byte /* Define to 1 if your processor stores words with the most significant byte
first (like Motorola and SPARC, unlike Intel and VAX). */ first (like Motorola and SPARC, unlike Intel and VAX). */