mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-12-27 02:30:35 +00:00
Merge branch 'master' into 0.11
This commit is contained in:
commit
1aefff4959
2 changed files with 28 additions and 7 deletions
|
@ -34,9 +34,17 @@ enum
|
||||||
PROP_LAST
|
PROP_LAST
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum
|
||||||
|
{
|
||||||
|
SIGNAL_MEDIA_CONSTRUCTED,
|
||||||
|
SIGNAL_LAST
|
||||||
|
};
|
||||||
|
|
||||||
GST_DEBUG_CATEGORY_STATIC (rtsp_media_debug);
|
GST_DEBUG_CATEGORY_STATIC (rtsp_media_debug);
|
||||||
#define GST_CAT_DEFAULT rtsp_media_debug
|
#define GST_CAT_DEFAULT rtsp_media_debug
|
||||||
|
|
||||||
|
static guint gst_rtsp_media_factory_signals[SIGNAL_LAST] = { 0 };
|
||||||
|
|
||||||
static void gst_rtsp_media_factory_get_property (GObject * object, guint propid,
|
static void gst_rtsp_media_factory_get_property (GObject * object, guint propid,
|
||||||
GValue * value, GParamSpec * pspec);
|
GValue * value, GParamSpec * pspec);
|
||||||
static void gst_rtsp_media_factory_set_property (GObject * object, guint propid,
|
static void gst_rtsp_media_factory_set_property (GObject * object, guint propid,
|
||||||
|
@ -103,6 +111,12 @@ gst_rtsp_media_factory_class_init (GstRTSPMediaFactoryClass * klass)
|
||||||
"The kernel UDP buffer size to use", 0, G_MAXUINT,
|
"The kernel UDP buffer size to use", 0, G_MAXUINT,
|
||||||
DEFAULT_BUFFER_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
DEFAULT_BUFFER_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
|
||||||
|
|
||||||
|
gst_rtsp_media_factory_signals[SIGNAL_MEDIA_CONSTRUCTED] =
|
||||||
|
g_signal_new ("media-constructed", G_TYPE_FROM_CLASS (klass),
|
||||||
|
G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstRTSPMediaFactoryClass,
|
||||||
|
media_constructed), NULL, NULL, g_cclosure_marshal_VOID__OBJECT,
|
||||||
|
G_TYPE_NONE, 1, GST_TYPE_RTSP_MEDIA);
|
||||||
|
|
||||||
klass->gen_key = default_gen_key;
|
klass->gen_key = default_gen_key;
|
||||||
klass->get_element = default_get_element;
|
klass->get_element = default_get_element;
|
||||||
klass->construct = default_construct;
|
klass->construct = default_construct;
|
||||||
|
@ -490,9 +504,13 @@ gst_rtsp_media_factory_construct (GstRTSPMediaFactory * factory,
|
||||||
|
|
||||||
if (media == NULL) {
|
if (media == NULL) {
|
||||||
/* nothing cached found, try to create one */
|
/* nothing cached found, try to create one */
|
||||||
if (klass->construct)
|
if (klass->construct) {
|
||||||
media = klass->construct (factory, url);
|
media = klass->construct (factory, url);
|
||||||
else
|
if (media)
|
||||||
|
g_signal_emit (factory,
|
||||||
|
gst_rtsp_media_factory_signals[SIGNAL_MEDIA_CONSTRUCTED], 0, media,
|
||||||
|
NULL);
|
||||||
|
} else
|
||||||
media = NULL;
|
media = NULL;
|
||||||
|
|
||||||
if (media) {
|
if (media) {
|
||||||
|
|
|
@ -98,7 +98,10 @@ struct _GstRTSPMediaFactoryClass {
|
||||||
GstElement * (*get_element) (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);
|
GstElement * (*get_element) (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);
|
||||||
GstRTSPMedia * (*construct) (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);
|
GstRTSPMedia * (*construct) (GstRTSPMediaFactory *factory, const GstRTSPUrl *url);
|
||||||
void (*configure) (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
|
void (*configure) (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
|
||||||
GstElement * (*create_pipeline)(GstRTSPMediaFactory *factory, GstRTSPMedia *media);
|
GstElement * (*create_pipeline) (GstRTSPMediaFactory *factory, GstRTSPMedia *media);
|
||||||
|
|
||||||
|
/* signals */
|
||||||
|
void (*media_constructed)(GstRTSPMediaFactory *factory, GstRTSPMedia *media);
|
||||||
};
|
};
|
||||||
|
|
||||||
GType gst_rtsp_media_factory_get_type (void);
|
GType gst_rtsp_media_factory_get_type (void);
|
||||||
|
|
Loading…
Reference in a new issue