aboutsummaryrefslogtreecommitdiff
path: root/plugins
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2012-10-08 09:57:27 +0200
committerSebastian Dröge <sebastian.droege@collabora.co.uk>2012-10-08 09:57:27 +0200
commitf4e033e836d36ee95103886032932bf823db5e3f (patch)
tree9a1dda8d0c07a5cfeebc047617b83056d715701c /plugins
parentf73db06c09ae3480b3d76a2bba8700444d00f181 (diff)
Imported Upstream version 1.0.1upstream/1.0.1
Diffstat (limited to 'plugins')
-rw-r--r--plugins/elements/gstcapsfilter.c1
-rw-r--r--plugins/elements/gstfakesink.c2
-rw-r--r--plugins/elements/gstfakesrc.c8
-rw-r--r--plugins/elements/gstidentity.c7
-rw-r--r--plugins/elements/gstmultiqueue.c2
-rw-r--r--plugins/elements/gsttee.c2
-rw-r--r--plugins/elements/gsttypefindelement.c16
-rw-r--r--plugins/elements/gsttypefindelement.h1
8 files changed, 30 insertions, 9 deletions
diff --git a/plugins/elements/gstcapsfilter.c b/plugins/elements/gstcapsfilter.c
index 5fa2ab3..fd6a094 100644
--- a/plugins/elements/gstcapsfilter.c
+++ b/plugins/elements/gstcapsfilter.c
@@ -128,6 +128,7 @@ gst_capsfilter_init (GstCapsFilter * filter)
{
GstBaseTransform *trans = GST_BASE_TRANSFORM (filter);
gst_base_transform_set_gap_aware (trans, TRUE);
+ gst_base_transform_set_prefer_passthrough (trans, FALSE);
filter->filter_caps = gst_caps_new_any ();
}
diff --git a/plugins/elements/gstfakesink.c b/plugins/elements/gstfakesink.c
index c328f37..2e28b01 100644
--- a/plugins/elements/gstfakesink.c
+++ b/plugins/elements/gstfakesink.c
@@ -262,7 +262,7 @@ gst_fake_sink_set_property (GObject * object, guint prop_id,
switch (prop_id) {
case PROP_STATE_ERROR:
- sink->state_error = g_value_get_enum (value);
+ sink->state_error = (GstFakeSinkStateError) g_value_get_enum (value);
break;
case PROP_SILENT:
sink->silent = g_value_get_boolean (value);
diff --git a/plugins/elements/gstfakesrc.c b/plugins/elements/gstfakesrc.c
index bbdff16..ce43c38 100644
--- a/plugins/elements/gstfakesrc.c
+++ b/plugins/elements/gstfakesrc.c
@@ -449,7 +449,7 @@ gst_fake_src_set_property (GObject * object, guint prop_id,
g_warning ("not yet implemented");
break;
case PROP_DATA:
- src->data = g_value_get_enum (value);
+ src->data = (GstFakeSrcDataType) g_value_get_enum (value);
if (src->data == FAKE_SRC_DATA_SUBBUFFER) {
if (!src->parent)
@@ -462,7 +462,7 @@ gst_fake_src_set_property (GObject * object, guint prop_id,
}
break;
case PROP_SIZETYPE:
- src->sizetype = g_value_get_enum (value);
+ src->sizetype = (GstFakeSrcSizeType) g_value_get_enum (value);
break;
case PROP_SIZEMIN:
src->sizemin = g_value_get_int (value);
@@ -474,7 +474,7 @@ gst_fake_src_set_property (GObject * object, guint prop_id,
src->parentsize = g_value_get_int (value);
break;
case PROP_FILLTYPE:
- src->filltype = g_value_get_enum (value);
+ src->filltype = (GstFakeSrcFillType) g_value_get_enum (value);
break;
case PROP_DATARATE:
src->datarate = g_value_get_int (value);
@@ -507,7 +507,7 @@ gst_fake_src_set_property (GObject * object, guint prop_id,
gst_base_src_set_live (basesrc, g_value_get_boolean (value));
break;
case PROP_FORMAT:
- src->format = g_value_get_enum (value);
+ src->format = (GstFormat) g_value_get_enum (value);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
diff --git a/plugins/elements/gstidentity.c b/plugins/elements/gstidentity.c
index be93b86..2475cc8 100644
--- a/plugins/elements/gstidentity.c
+++ b/plugins/elements/gstidentity.c
@@ -307,6 +307,9 @@ gst_identity_sink_event (GstBaseTransform * trans, GstEvent * event)
news = gst_event_new_segment (&segment);
gst_pad_event_default (trans->sinkpad, GST_OBJECT_CAST (trans), news);
+ } else {
+ /* need to track segment for proper running time */
+ gst_event_copy_segment (event, &trans->segment);
}
}
@@ -551,7 +554,7 @@ gst_identity_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
GstClockTime time = gst_util_uint64_scale_int (identity->offset,
GST_SECOND, identity->datarate);
- GST_BUFFER_TIMESTAMP (buf) = time;
+ GST_BUFFER_PTS (buf) = GST_BUFFER_DTS (buf) = time;
GST_BUFFER_DURATION (buf) = size * GST_SECOND / identity->datarate;
}
@@ -596,7 +599,7 @@ gst_identity_transform_ip (GstBaseTransform * trans, GstBuffer * buf)
if (identity->single_segment && (trans->segment.format == GST_FORMAT_TIME)
&& (ret == GST_FLOW_OK)) {
- GST_BUFFER_TIMESTAMP (buf) = runtimestamp;
+ GST_BUFFER_PTS (buf) = GST_BUFFER_DTS (buf) = runtimestamp;
GST_BUFFER_OFFSET (buf) = GST_CLOCK_TIME_NONE;
GST_BUFFER_OFFSET_END (buf) = GST_CLOCK_TIME_NONE;
}
diff --git a/plugins/elements/gstmultiqueue.c b/plugins/elements/gstmultiqueue.c
index cfa8a24..8afcebb 100644
--- a/plugins/elements/gstmultiqueue.c
+++ b/plugins/elements/gstmultiqueue.c
@@ -1091,7 +1091,7 @@ gst_single_queue_push_one (GstMultiQueue * mq, GstSingleQueue * sq,
g_cond_signal (&sq->query_handled);
GST_MULTI_QUEUE_MUTEX_UNLOCK (mq);
} else {
- g_warning ("Unexpected object in singlequeue %d (refcounting problem?)",
+ g_warning ("Unexpected object in singlequeue %u (refcounting problem?)",
sq->id);
}
return result;
diff --git a/plugins/elements/gsttee.c b/plugins/elements/gsttee.c
index a00c1d1..f739505 100644
--- a/plugins/elements/gsttee.c
+++ b/plugins/elements/gsttee.c
@@ -443,7 +443,7 @@ gst_tee_set_property (GObject * object, guint prop_id, const GValue * value,
tee->silent = g_value_get_boolean (value);
break;
case PROP_PULL_MODE:
- tee->pull_mode = g_value_get_enum (value);
+ tee->pull_mode = (GstTeePullMode) g_value_get_enum (value);
break;
case PROP_ALLOC_PAD:
{
diff --git a/plugins/elements/gsttypefindelement.c b/plugins/elements/gsttypefindelement.c
index 33e2376..f9a16f5 100644
--- a/plugins/elements/gsttypefindelement.c
+++ b/plugins/elements/gsttypefindelement.c
@@ -1055,6 +1055,21 @@ gst_type_find_element_loop (GstPad * pad)
} else if (typefind->mode == MODE_NORMAL) {
GstBuffer *outbuf = NULL;
+ if (typefind->need_stream_start) {
+ gchar *stream_id;
+
+ stream_id =
+ gst_pad_create_stream_id (typefind->src, GST_ELEMENT_CAST (typefind),
+ NULL);
+
+ GST_DEBUG_OBJECT (typefind, "Pushing STREAM_START");
+ gst_pad_push_event (typefind->src,
+ gst_event_new_stream_start (stream_id));
+
+ typefind->need_stream_start = FALSE;
+ g_free (stream_id);
+ }
+
if (typefind->need_segment) {
typefind->need_segment = FALSE;
gst_pad_push_event (typefind->src,
@@ -1136,6 +1151,7 @@ gst_type_find_element_activate_sink_mode (GstPad * pad, GstObject * parent,
if (active) {
gst_segment_init (&typefind->segment, GST_FORMAT_BYTES);
typefind->need_segment = TRUE;
+ typefind->need_stream_start = TRUE;
typefind->offset = 0;
res = TRUE;
} else {
diff --git a/plugins/elements/gsttypefindelement.h b/plugins/elements/gsttypefindelement.h
index 2ee3325..66607db 100644
--- a/plugins/elements/gsttypefindelement.h
+++ b/plugins/elements/gsttypefindelement.h
@@ -61,6 +61,7 @@ struct _GstTypeFindElement {
/* Only used when driving the pipeline */
gboolean need_segment;
+ gboolean need_stream_start;
GstSegment segment;
guint64 offset;
};