summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-11-16 18:04:00 +0100
committerMark Nauwelaerts <mark.nauwelaerts@collabora.co.uk>2010-11-17 15:36:36 +0100
commit587106f1cf9fa740fabdd80682a917db63df6658 (patch)
treee775c98521cd9a2567950bf88c3967bbffaf861d
parentf82f3305370b4e4b5904e8322018a3a7dda6eb1a (diff)
baseparse: slightly optimize sending of pending newsegment events
-rw-r--r--gst/audioparsers/gstbaseparse.c29
1 files changed, 11 insertions, 18 deletions
diff --git a/gst/audioparsers/gstbaseparse.c b/gst/audioparsers/gstbaseparse.c
index e014d44b0..784bac0dd 100644
--- a/gst/audioparsers/gstbaseparse.c
+++ b/gst/audioparsers/gstbaseparse.c
@@ -1508,24 +1508,17 @@ gst_base_parse_push_buffer (GstBaseParse * parse, GstBuffer * buffer)
}
/* and should then also be linked downstream, so safe to send some events */
- if (parse->priv->pad_mode == GST_ACTIVATE_PULL) {
- if (G_UNLIKELY (parse->close_segment)) {
- GST_DEBUG_OBJECT (parse, "loop sending close segment");
- gst_pad_push_event (parse->srcpad, parse->close_segment);
- parse->close_segment = NULL;
- }
-
- if (G_UNLIKELY (parse->pending_segment)) {
- GST_DEBUG_OBJECT (parse, "loop push pending segment");
- gst_pad_push_event (parse->srcpad, parse->pending_segment);
- parse->pending_segment = NULL;
- }
- } else {
- if (G_UNLIKELY (parse->pending_segment)) {
- GST_DEBUG_OBJECT (parse, "chain pushing a pending segment");
- gst_pad_push_event (parse->srcpad, parse->pending_segment);
- parse->pending_segment = NULL;
- }
+ if (G_UNLIKELY (parse->close_segment)) {
+ /* only set up by loop */
+ GST_DEBUG_OBJECT (parse, "loop sending close segment");
+ gst_pad_push_event (parse->srcpad, parse->close_segment);
+ parse->close_segment = NULL;
+ }
+ if (G_UNLIKELY (parse->pending_segment)) {
+ GST_DEBUG_OBJECT (parse, "%s push pending segment",
+ parse->priv->pad_mode == GST_ACTIVATE_PULL ? "loop" : "chain");
+ gst_pad_push_event (parse->srcpad, parse->pending_segment);
+ parse->pending_segment = NULL;
}
/* update bitrates and optionally post corresponding tags