Select the out that arrived first among the input streams. More...
#include "gstjoin.h"
Go to the source code of this file.
Classes | |
struct | _GstJoinPad |
GstJoinPad data structure. More... | |
struct | _GstJoinPadClass |
_GstJoinPadClass data structure More... | |
Macros | |
#define | GST_CAT_DEFAULT join_debug |
#define | GST_JOIN_GET_LOCK(sel) (&((GstJoin*)(sel))->lock) |
#define | GST_JOIN_GET_COND(sel) (&((GstJoin*)(sel))->cond) |
#define | GST_JOIN_LOCK(sel) (g_mutex_lock (GST_JOIN_GET_LOCK(sel))) |
#define | GST_JOIN_UNLOCK(sel) (g_mutex_unlock (GST_JOIN_GET_LOCK(sel))) |
#define | GST_JOIN_WAIT(sel) |
#define | GST_TYPE_JOIN_PAD (gst_join_pad_get_type()) |
#define | GST_JOIN_PAD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_JOIN_PAD, GstJoinPad)) |
#define | GST_JOIN_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_JOIN_PAD, GstJoinPadClass)) |
#define | GST_IS_JOIN_PAD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_JOIN_PAD)) |
#define | GST_IS_JOIN_PAD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_JOIN_PAD)) |
#define | GST_JOIN_PAD_CAST(obj) ((GstJoinPad *)(obj)) |
#define | gst_join_parent_class parent_class |
#define | PACKAGE "join" |
Typedefs | |
typedef struct _GstJoinPad | GstJoinPad |
typedef struct _GstJoinPadClass | GstJoinPadClass |
Enumerations | |
enum | { PROP_0, PROP_N_PADS, PROP_ACTIVE_PAD } |
Functions | |
GST_DEBUG_CATEGORY_STATIC (join_debug) | |
static GstPad * | gst_join_get_active_sinkpad (GstJoin *sel) |
Get or create the active sinkpad. More... | |
static GstPad * | gst_join_get_linked_pad (GstJoin *sel, GstPad *pad, gboolean strict) |
Get linked pad. More... | |
static gboolean | gst_join_set_active_pad (GstJoin *self, GstPad *pad) |
set active sink pad. More... | |
GType | gst_join_pad_get_type (void) |
static void | gst_join_pad_finalize (GObject *object) |
finalize the join pad More... | |
static void | gst_join_pad_reset (GstJoinPad *pad) |
Clear and reset join pad. More... | |
static gboolean | gst_join_pad_event (GstPad *pad, GstObject *parent, GstEvent *event) |
event function for sink pad More... | |
static gboolean | gst_join_pad_query (GstPad *pad, GstObject *parent, GstQuery *query) |
handlesink sink pad query More... | |
static GstIterator * | gst_join_pad_iterate_linked_pads (GstPad *pad, GstObject *parent) |
strictly get the linked pad from the sinkpad. More... | |
static GstFlowReturn | gst_join_pad_chain (GstPad *pad, GstObject *parent, GstBuffer *buf) |
Chain function, this function does the actual processing. More... | |
G_DEFINE_TYPE (GstJoinPad, gst_join_pad, GST_TYPE_PAD) | |
static void | gst_join_pad_class_init (GstJoinPadClass *klass) |
initialize the join's pad class More... | |
static void | gst_join_pad_init (GstJoinPad *pad) |
initialize the join pad More... | |
static gboolean | forward_sticky_events (GstPad *sinkpad, GstEvent **event, gpointer user_data) |
forward sticky event More... | |
static void | gst_join_dispose (GObject *object) |
dispose function for join element More... | |
static void | gst_join_finalize (GObject *object) |
finalize join element. More... | |
static void | gst_join_get_property (GObject *object, guint prop_id, GValue *value, GParamSpec *pspec) |
Getter for join properties. More... | |
static GstPad * | gst_join_request_new_pad (GstElement *element, GstPadTemplate *templ, const gchar *unused, const GstCaps *caps) |
request new sink pad More... | |
G_DEFINE_TYPE_WITH_CODE (GstJoin, gst_join, GST_TYPE_ELEMENT, GST_DEBUG_CATEGORY_INIT(join_debug, "join", 0, "An input stream join element")) | |
static void | gst_join_class_init (GstJoinClass *klass) |
initialize the join's class More... | |
static void | gst_join_init (GstJoin *sel) |
initialize the join element More... | |
static gboolean | plugin_init (GstPlugin *plugin) |
register this element More... | |
Variables | |
static GstStaticPadTemplate | gst_join_sink_factory |
The capabilities of the inputs. More... | |
static GstStaticPadTemplate | gst_join_src_factory |
The capabilities of the outputs. More... | |
Select the out that arrived first among the input streams.
Copyright (C) 2020 Gichan Jang gicha n2.j ang@s amsu ng.co m
Definition in file gstjoin.c.
#define GST_IS_JOIN_PAD | ( | obj | ) | (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_JOIN_PAD)) |
#define GST_IS_JOIN_PAD_CLASS | ( | klass | ) | (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_JOIN_PAD)) |
#define GST_JOIN_GET_COND | ( | sel | ) | (&((GstJoin*)(sel))->cond) |
#define GST_JOIN_GET_LOCK | ( | sel | ) | (&((GstJoin*)(sel))->lock) |
#define GST_JOIN_LOCK | ( | sel | ) | (g_mutex_lock (GST_JOIN_GET_LOCK(sel))) |
#define GST_JOIN_PAD | ( | obj | ) | (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_JOIN_PAD, GstJoinPad)) |
#define GST_JOIN_PAD_CAST | ( | obj | ) | ((GstJoinPad *)(obj)) |
#define GST_JOIN_PAD_CLASS | ( | klass | ) | (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_JOIN_PAD, GstJoinPadClass)) |
#define GST_JOIN_UNLOCK | ( | sel | ) | (g_mutex_unlock (GST_JOIN_GET_LOCK(sel))) |
#define GST_JOIN_WAIT | ( | sel | ) |
#define GST_TYPE_JOIN_PAD (gst_join_pad_get_type()) |
typedef struct _GstJoinPad GstJoinPad |
typedef struct _GstJoinPadClass GstJoinPadClass |
anonymous enum |
|
static |
G_DEFINE_TYPE | ( | GstJoinPad | , |
gst_join_pad | , | ||
GST_TYPE_PAD | |||
) |
G_DEFINE_TYPE_WITH_CODE | ( | GstJoin | , |
gst_join | , | ||
GST_TYPE_ELEMENT | , | ||
GST_DEBUG_CATEGORY_INIT(join_debug, "join", 0, "An input stream join element") | |||
) |
GST_DEBUG_CATEGORY_STATIC | ( | join_debug | ) |
SECTION:element-join @see_also #GstInputSelector
Connect recently arrived buffer from N input streams to the output pad. N streams should not operate at the same time. All capabilities (input stream i and output stream) should be the same. For example, If one sinkpad is receiving buffer, the others should be stopped. <refsect2> <title>Example launch line</title> gst-launch-1.0 ... (input stream 0) ! join.sink_0 \ ... (input stream 1) ! join.sink_1 \ ... \ ... (input stream N) ! join.sink_n \ join name=join ! (arrived input stream) ... </refsect2>
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
GType gst_join_pad_get_type | ( | void | ) |
|
static |
|
static |
|
static |
handlesink sink pad query
always proxy caps/position/duration/context queries, regardless of active pad or not See https://bugzilla.gnome.org/show_bug.cgi?id=775445
Only do the allocation query for the active sinkpad, after switching a reconfigure event is sent and upstream should reconfigure and do a new allocation query
Definition at line 307 of file gstjoin.c.
|
static |
|
static |
|
static |
|
static |
|
static |