audiomixer: Set the sinkpad segments basetime after seeking

Otherwise stream offset and running time comparison will not be
correct, leading to segfaults after seeks
This commit is contained in:
Thibault Saunier 2014-07-21 11:07:19 +02:00
parent dd65d70f65
commit 27b8d981c7
2 changed files with 4 additions and 0 deletions

View file

@ -706,6 +706,8 @@ 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;
@ -1131,6 +1133,7 @@ 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);

View file

@ -71,6 +71,7 @@ struct _GstAudioMixer {
/* Last time we noticed a discont */
GstClockTime discont_time;
gint64 base_time;
/* Size in samples that is output per buffer */
guint blocksize;