audiomixer: issues with seamless looping (missing support for non-flushing seeks)
@ensonic
Submitted by Stefan Kost Link to original bug (#757563)
Description
Despite a test that should cover this in real world apps, audiomixer (aggregator) goes crazy when looping (gst_aggregator_do_seek):
I can play once with a segmented+flushing seek. When handling segment_done and sending another segmented seek (non flushing), I get this log forever, until I stop the pipeline.
0:00:20.315003477 13555 0x7f8f84005e30 INFO bt-core src/lib/core/song.c:512:on_song_segment_done: received SEGMENT_DONE (114) bus message: 0x7f8f60005e20, from song, with fmt=time, ts=0:00:07.680000000
0:00:20.315071362 13555 0x7f8f84005e30 INFO aggregator gstaggregator.c:1671:gst_aggregator_do_seek:master:audiomixer starting SEEK: seek event: 0x4505430, time 99:99:99.999999999, seq-num 1473, GstEventSeek, rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, flags=(GstSeekFlags)GST_SEEK_FLAG_SEGMENT, cur-type=(GstSeekType)GST_SEEK_TYPE_SET, cur=(gint64)0, stop-type=(GstSeekType)GST_SEEK_TYPE_SET, stop=(gint64)7680000000;
0:00:20.315172122 13555 0x7f8f84005e30 INFO aggregator gstaggregator.c:1700:gst_aggregator_do_seek:master:audiomixer seek done
0:00:20.315196595 13555 0x7f8f84005e30 INFO bt-core src/lib/core/song.c:532:on_song_segment_done: -> loop (1473)
0:00:20.421714132 13555 0x7f8f84005e30 INFO bt-core src/lib/core/song.c:1076:bt_song_update_playback_position: query playback-pos: cur=7656970000, tick=63
0:00:20.435006447 13555 0x7f8f84005e30 INFO bt-core src/lib/core/song.c:512:on_song_segment_done: received SEGMENT_DONE (1473) bus message: 0x44fb1c0, from song, with fmt=time, ts=0:00:07.680000000
0:00:20.435093709 13555 0x7f8f84005e30 INFO aggregator gstaggregator.c:1671:gst_aggregator_do_seek:master:audiomixer starting SEEK: seek event: 0x4505740, time 99:99:99.999999999, seq-num 1651, GstEventSeek, rate=(double)1, format=(GstFormat)GST_FORMAT_TIME, flags=(GstSeekFlags)GST_SEEK_FLAG_SEGMENT, cur-type=(GstSeekType)GST_SEEK_TYPE_SET, cur=(gint64)0, stop-type=(GstSeekType)GST_SEEK_TYPE_SET, stop=(gint64)7680000000;
0:00:20.435201716 13555 0x7f8f84005e30 INFO aggregator gstaggregator.c:1700:gst_aggregator_do_seek:master:audiomixer seek done
0:00:20.435227403 13555 0x7f8f84005e30 INFO bt-core src/lib/core/song.c:532:on_song_segment_done: -> loop (1651)