summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2015-02-05 16:02:54 +0100
committerSebastian Dröge <sebastian@centricular.com>2015-02-05 16:02:54 +0100
commitce7444411e89de27e3be8a084ef71c56bf4e28fa (patch)
tree2f10d693cd695238d1db41b67e45d343f6ffeda2
parent83e5fe2f70e593457d44a3b3a9effbf772b8025b (diff)
audiomixer: Remove weird and wrong segment handling
There's no reason why audiomixer should override the segment base of upstream with whatever value it got from a SEEK event, or even worse... with 0 if there was no SEEK event yet. This broke synchronization if upstream provided a segment base other than 0, e.g. when using pad offsets. Also that this code did things conditional on the element's state should've been a big warning already that something is just wrong. If this breaks anything else now, let's fix it properly :) Also don't do fancy segment position trickery when receiving a segment event. It's just not correct.
-rw-r--r--gst/audiomixer/gstaudiomixer.c34
1 files changed, 0 insertions, 34 deletions
diff --git a/gst/audiomixer/gstaudiomixer.c b/gst/audiomixer/gstaudiomixer.c
index d5ff6ebe7..e512863c7 100644
--- a/gst/audiomixer/gstaudiomixer.c
+++ b/gst/audiomixer/gstaudiomixer.c
@@ -639,9 +639,6 @@ gst_audiomixer_src_event (GstAggregator * agg, GstEvent * event)
/* Link up */
result = GST_AGGREGATOR_CLASS (parent_class)->src_event (agg, event);
-
- if (result)
- audiomixer->base_time = agg->segment.start;
goto done;
}
break;
@@ -693,17 +690,6 @@ gst_audiomixer_sink_event (GstAggregator * agg, GstAggregatorPad * aggpad,
gst_event_unref (event);
event = NULL;
}
-
- if (event) {
- res =
- GST_AGGREGATOR_CLASS (parent_class)->sink_event (agg, aggpad,
- event);
-
- if (res)
- aggpad->segment.position = segment->start + segment->offset;
-
- event = NULL;
- }
break;
}
default:
@@ -761,23 +747,6 @@ gst_audiomixer_flush (GstAggregator * agg)
return GST_FLOW_OK;
}
-static gboolean
-gst_audiomixer_send_event (GstElement * element, GstEvent * event)
-{
- GstAudioMixer *audiomixer = GST_AUDIO_MIXER (element);
-
- gboolean res = GST_ELEMENT_CLASS (parent_class)->send_event (element, event);
-
- GST_STATE_LOCK (element);
- if (GST_EVENT_TYPE (event) == GST_EVENT_SEEK &&
- GST_STATE (element) < GST_STATE_PAUSED) {
- audiomixer->base_time = GST_AGGREGATOR (element)->segment.start;
- }
- GST_STATE_UNLOCK (element);
-
- return res;
-}
-
static void
gst_audiomixer_class_init (GstAudioMixerClass * klass)
{
@@ -827,8 +796,6 @@ gst_audiomixer_class_init (GstAudioMixerClass * klass)
GST_DEBUG_FUNCPTR (gst_audiomixer_request_new_pad);
gstelement_class->release_pad =
GST_DEBUG_FUNCPTR (gst_audiomixer_release_pad);
- gstelement_class->send_event = GST_DEBUG_FUNCPTR (gst_audiomixer_send_event);
-
agg_class->sinkpads_type = GST_TYPE_AUDIO_MIXER_PAD;
agg_class->start = gst_audiomixer_start;
@@ -1093,7 +1060,6 @@ gst_audio_mixer_fill_buffer (GstAudioMixer * audiomixer, GstAudioMixerPad * pad,
guint64 start_running_time_offset;
guint64 end_running_time_offset;
- aggpad->segment.base = audiomixer->base_time;
start_running_time =
gst_segment_to_running_time (&aggpad->segment,
GST_FORMAT_TIME, start_time);