mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2025-06-05 06:58:56 +00:00
gst/switch/gstswitch.*: Add block' and
switch' signals.
Original commit message from CVS: 2007-12-17 Andy Wingo <wingo@pobox.com> * gst/switch/gstswitch.h (struct _GstStreamSelectorClass): * gst/switch/gstswitch.c (gst_stream_selector_class_init): Add `block' and `switch' signals. * gst/switch/Makefile.am: * gst/switch/gstswitch-marshal.list: Add foo to generate a marshaller for the `switch' signal. Patch 2/12.
This commit is contained in:
parent
9db3f63b13
commit
ad6223b448
5 changed files with 65 additions and 1 deletions
|
@ -1,5 +1,13 @@
|
||||||
2007-12-17 Andy Wingo <wingo@pobox.com>
|
2007-12-17 Andy Wingo <wingo@pobox.com>
|
||||||
|
|
||||||
|
* gst/switch/gstswitch.h (struct _GstStreamSelectorClass):
|
||||||
|
* gst/switch/gstswitch.c (gst_stream_selector_class_init): Add
|
||||||
|
`block' and `switch' signals.
|
||||||
|
|
||||||
|
* gst/switch/Makefile.am:
|
||||||
|
* gst/switch/gstswitch-marshal.list: Add foo to generate a
|
||||||
|
marshaller for the `switch' signal. Patch 2/12.
|
||||||
|
|
||||||
* gst/switch/gstswitch.h:
|
* gst/switch/gstswitch.h:
|
||||||
* gst/switch/gstswitch.c: Replace with files from
|
* gst/switch/gstswitch.c: Replace with files from
|
||||||
gststreamselector.[ch], registered as the "switch" plugin, with
|
gststreamselector.[ch], registered as the "switch" plugin, with
|
||||||
|
|
|
@ -1,9 +1,22 @@
|
||||||
|
glib_enum_prefix = gst_switch
|
||||||
|
|
||||||
|
include $(top_srcdir)/common/glib-gen.mak
|
||||||
|
|
||||||
|
built_sources = gstswitch-marshal.c
|
||||||
|
built_headers = gstswitch-marshal.h
|
||||||
|
|
||||||
|
BUILT_SOURCES = $(built_sources) $(built_headers)
|
||||||
|
|
||||||
|
CLEANFILES = $(BUILT_SOURCES)
|
||||||
|
|
||||||
|
EXTRA_DIST = gstswitch-marshal.list
|
||||||
|
|
||||||
plugin_LTLIBRARIES = libgstswitch.la
|
plugin_LTLIBRARIES = libgstswitch.la
|
||||||
|
|
||||||
libgstswitch_la_SOURCES = gstswitch.c
|
libgstswitch_la_SOURCES = gstswitch.c
|
||||||
|
nodist_libgstswitch_la_SOURCES = $(built_sources)
|
||||||
libgstswitch_la_CFLAGS = $(GST_CFLAGS)
|
libgstswitch_la_CFLAGS = $(GST_CFLAGS)
|
||||||
libgstswitch_la_LIBADD =
|
libgstswitch_la_LIBADD =
|
||||||
libgstswitch_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS)
|
libgstswitch_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS)
|
||||||
|
|
||||||
noinst_HEADERS = gstswitch.h
|
noinst_HEADERS = gstswitch.h $(built_headers)
|
||||||
|
|
1
gst/switch/gstswitch-marshal.list
Normal file
1
gst/switch/gstswitch-marshal.list
Normal file
|
@ -0,0 +1 @@
|
||||||
|
VOID:STRING,UINT64,UINT64
|
|
@ -27,6 +27,7 @@
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include "gstswitch.h"
|
#include "gstswitch.h"
|
||||||
|
#include "gstswitch-marshal.h"
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_STATIC (stream_selector_debug);
|
GST_DEBUG_CATEGORY_STATIC (stream_selector_debug);
|
||||||
#define GST_CAT_DEFAULT stream_selector_debug
|
#define GST_CAT_DEFAULT stream_selector_debug
|
||||||
|
@ -57,6 +58,15 @@ enum
|
||||||
PROP_ACTIVE_PAD = 1
|
PROP_ACTIVE_PAD = 1
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
/* methods */
|
||||||
|
SIGNAL_BLOCK,
|
||||||
|
SIGNAL_SWITCH,
|
||||||
|
LAST_SIGNAL
|
||||||
|
};
|
||||||
|
static guint gst_stream_selector_signals[LAST_SIGNAL] = { 0 };
|
||||||
|
|
||||||
static gboolean gst_stream_selector_is_active_sinkpad (GstStreamSelector * sel,
|
static gboolean gst_stream_selector_is_active_sinkpad (GstStreamSelector * sel,
|
||||||
GstPad * pad);
|
GstPad * pad);
|
||||||
static GstPad *gst_stream_selector_activate_sinkpad (GstStreamSelector * sel,
|
static GstPad *gst_stream_selector_activate_sinkpad (GstStreamSelector * sel,
|
||||||
|
@ -429,6 +439,34 @@ gst_stream_selector_class_init (GstStreamSelectorClass * klass)
|
||||||
gobject_class->dispose = gst_stream_selector_dispose;
|
gobject_class->dispose = gst_stream_selector_dispose;
|
||||||
gstelement_class->request_new_pad = gst_stream_selector_request_new_pad;
|
gstelement_class->request_new_pad = gst_stream_selector_request_new_pad;
|
||||||
gstelement_class->release_pad = gst_stream_selector_release_pad;
|
gstelement_class->release_pad = gst_stream_selector_release_pad;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* GstStreamSelector::block:
|
||||||
|
* @streamselector: the streamselector element to emit this signal on
|
||||||
|
*
|
||||||
|
* Block all sink pads in preparation for a switch.
|
||||||
|
*/
|
||||||
|
gst_stream_selector_signals[SIGNAL_BLOCK] =
|
||||||
|
g_signal_new ("block", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstStreamSelectorClass, block),
|
||||||
|
NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0);
|
||||||
|
/**
|
||||||
|
* GstStreamSelector::switch:
|
||||||
|
* @streamselector: the streamselector element to emit this signal on
|
||||||
|
* @pad: name of pad to switch to
|
||||||
|
* @stop_time: time at which to close the previous segment, or
|
||||||
|
* #GST_CLOCK_TIME_NONE for the last time on the previously
|
||||||
|
* active pad
|
||||||
|
* @start_time: start time for new segment, or foo
|
||||||
|
*
|
||||||
|
* Switch the given open file descriptor to multifdsink to write to and
|
||||||
|
* specify the burst parameters for the new connection.
|
||||||
|
*/
|
||||||
|
gst_stream_selector_signals[SIGNAL_SWITCH] =
|
||||||
|
g_signal_new ("switch", G_TYPE_FROM_CLASS (klass), G_SIGNAL_RUN_LAST,
|
||||||
|
G_STRUCT_OFFSET (GstStreamSelectorClass, switch_),
|
||||||
|
NULL, NULL, gst_switch_marshal_VOID__STRING_UINT64_UINT64,
|
||||||
|
G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_UINT64, G_TYPE_UINT64);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
|
|
@ -52,6 +52,10 @@ struct _GstStreamSelector {
|
||||||
|
|
||||||
struct _GstStreamSelectorClass {
|
struct _GstStreamSelectorClass {
|
||||||
GstElementClass parent_class;
|
GstElementClass parent_class;
|
||||||
|
|
||||||
|
void (*block) (void);
|
||||||
|
void (*switch_) (const gchar *pad_name, GstClockTime stop_time,
|
||||||
|
GstClockTime start_time);
|
||||||
};
|
};
|
||||||
|
|
||||||
GType gst_stream_selector_get_type (void);
|
GType gst_stream_selector_get_type (void);
|
||||||
|
|
Loading…
Reference in a new issue