summary |
shortlog | log |
commit |
commitdiff |
tree
first ⋅ prev ⋅ next
Olivier Crête [Thu, 22 Jan 2015 00:09:13 +0000 (19:09 -0500)]
audiomixer: Make flush start/stop test non-racy
The flush stop could have happened between the source trying
to push the segment event and the buffer, this would cause a warning.
Prevent that by taking the source's stream lock while flushing.
https://bugzilla.gnome.org/show_bug.cgi?id=742684
Olivier Crête [Thu, 22 Jan 2015 22:41:24 +0000 (17:41 -0500)]
audiomixer: Replace racy timeout based tested with drain query
Using the drain query, we can be certain that the buffer has done going
through the aggregator by taking the stream locks.
https://bugzilla.gnome.org/show_bug.cgi?id=742684
Olivier Crête [Thu, 22 Jan 2015 00:32:34 +0000 (19:32 -0500)]
audiomixer: Avoid race in caps negotiation
With the current audiomixer, the input caps need to be the same,
otherwise there is an unavoidable race in the caps negotiation. So
enforce that using capsfilters
https://bugzilla.gnome.org/show_bug.cgi?id=742684
Olivier Crête [Wed, 21 Jan 2015 23:47:40 +0000 (18:47 -0500)]
audiomixer: Clear GstAudioInfo the the caps
When clearing the caps, also clear the matching GstAudioInfo
https://bugzilla.gnome.org/show_bug.cgi?id=742684
Olivier Crête [Wed, 21 Jan 2015 23:39:24 +0000 (18:39 -0500)]
audiomixer: Don't reset caps on flush
A flush event doesn't invalidate the previous caps event.
https://bugzilla.gnome.org/show_bug.cgi?id=742684
Olivier Crête [Wed, 14 Jan 2015 19:35:15 +0000 (14:35 -0500)]
aggregator: Replace event lock with pad's object lock
Reduce the number of locks simplify code, what is protects
is exposed, but the lock was not.
Also means adding an _unlocked version of gst_aggregator_pad_steal_buffer().
https://bugzilla.gnome.org/show_bug.cgi?id=742684
Tim-Philipp Müller [Tue, 30 Dec 2014 18:01:34 +0000 (18:01 +0000)]
audiomixer: update for aggregator start/stop vfunc change
Tim-Philipp Müller [Tue, 30 Dec 2014 15:29:36 +0000 (15:29 +0000)]
audiomixer: fix output-block-size property description
Nirbheek Chauhan [Sat, 27 Dec 2014 10:19:39 +0000 (15:49 +0530)]
audiomixer: Document the pad properties
Sebastian Dröge [Tue, 23 Dec 2014 11:24:48 +0000 (12:24 +0100)]
audiomixer: If getting a timeout before having caps, just advance our position
This can happen if this is a live pipeline and no source produced any buffer
and sent no caps until the an output buffer should've been produced according
to the latency.
Sebastian Dröge [Tue, 23 Dec 2014 11:15:50 +0000 (12:15 +0100)]
audiomixer: Make sure to release the current buffer in reset()
If we didn't output the last one in aggregate because we were shutting down
earlier we might otherwise leak it.
Sebastian Dröge [Tue, 23 Dec 2014 10:45:50 +0000 (11:45 +0100)]
audiomixer: Change blocksize property to output-buffer-duration in time format
This makes the interface of audiomixer independent of the actual caps.
Sebastian Dröge [Mon, 22 Dec 2014 21:11:13 +0000 (22:11 +0100)]
audiomixer: Use the src query implementation of aggregator as the default case
Stefan Sauer [Sun, 21 Dec 2014 12:47:25 +0000 (07:47 -0500)]
audiomixer: fix build flag order
Have the libraries/inlcudes from plugins-bad first to avoid picking up the installed version.
Fixes the build when the local api changed.
Sebastian Dröge [Fri, 19 Dec 2014 12:04:58 +0000 (13:04 +0100)]
audiomixer: Track discont-time per pad instead of globally
We do discont handling per pad, not per element!
Sebastian Dröge [Thu, 18 Dec 2014 22:33:58 +0000 (23:33 +0100)]
audiomixer: We're only EOS if all our pads are actually EOS
Having a buffer or not on the pad is irrelevant.
Sebastian Dröge [Thu, 18 Dec 2014 21:42:14 +0000 (22:42 +0100)]
audiomixer: The pad's size is always supposed to be the whole buffer size
And the offset the offset into that buffer. Changing the size will
cause all kinds of assumptions to fail and cause crashes.
Sebastian Dröge [Wed, 17 Dec 2014 18:51:32 +0000 (19:51 +0100)]
aggregator: Add function to allow subclasses to set their own latency
For audiomixer this is one blocksize, for videoaggregator this should
be the duration of one output frame.
Sebastian Dröge [Wed, 17 Dec 2014 18:37:22 +0000 (19:37 +0100)]
audiomixer: Make sure to not have pads being behind the current offset
We would break sync between the different streams then.
Sebastian Dröge [Wed, 17 Dec 2014 16:54:09 +0000 (17:54 +0100)]
aggregator: Add a timeout parameter to ::aggregate()
When this is TRUE, we really have to produce output. This happens
in live mixing mode when we have to output something for the current
time, no matter if we have enough input or not.
Sebastian Dröge [Wed, 17 Dec 2014 17:20:15 +0000 (18:20 +0100)]
audiomixer: Add queues after the (live) sources in the unit test
Sebastian Dröge [Tue, 16 Dec 2014 16:37:12 +0000 (17:37 +0100)]
audiomixer: Implement get_next_time()
Thibault Saunier [Thu, 27 Nov 2014 15:43:39 +0000 (16:43 +0100)]
audiomixer: Do not try to resize a buffer to a negative size on EOS
Tim-Philipp Müller [Sat, 25 Oct 2014 17:50:42 +0000 (18:50 +0100)]
tests: fix audiomixer test on big endian systems
Vineeth T M [Mon, 20 Oct 2014 12:55:08 +0000 (18:25 +0530)]
audiomixer: critical error for blocksize, timeout min/max values
Audiomixer blocksize, cant be 0, hence adjusting the minimum value to 1
timeout value of aggregator is defined with MAX of MAXINT64,
but it cannot cross G_MAXLONG * GST_SECOND - 1
Hence changed the max value of the same
https://bugzilla.gnome.org/show_bug.cgi?id=738845
Aurélien Zanelli [Thu, 9 Oct 2014 12:51:56 +0000 (14:51 +0200)]
test: use G_GSIZE_FORMAT in audiomixer test
https://bugzilla.gnome.org/show_bug.cgi?id=738227
Matthew Waters [Mon, 6 Oct 2014 10:46:24 +0000 (21:46 +1100)]
aggregator: add latency query handling
Thibault Saunier [Mon, 6 Oct 2014 11:09:00 +0000 (13:09 +0200)]
audiomixer: Handle seek event in READY state
Thibault Saunier [Mon, 21 Jul 2014 09:07:19 +0000 (11:07 +0200)]
audiomixer: Set the sinkpad segments basetime after seeking
Otherwise stream offset and running time comparison will not be
correct, leading to segfaults after seeks
Thibault Saunier [Wed, 28 May 2014 14:29:37 +0000 (16:29 +0200)]
audiomixer: Port to GstAggregator
https://bugzilla.gnome.org/show_bug.cgi?id=737183
Co-Authored by: Mathieu Duponchelle <mathieu.duponchelle@opencreed.com>
Sebastian Dröge [Sat, 3 May 2014 16:16:21 +0000 (18:16 +0200)]
Release 1.3.1
Stefan Sauer [Tue, 11 Mar 2014 21:36:01 +0000 (22:36 +0100)]
audiomixer: set a group-id on the stream-start event
Set a default group-id to fix a warning printed by the sink.
Sebastian Dröge [Thu, 16 Jan 2014 11:18:45 +0000 (12:18 +0100)]
audiomixer: Remove some useless assignments and skip the current part of the buffer if the pad is muted
Sebastian Dröge [Wed, 15 Jan 2014 22:30:28 +0000 (23:30 +0100)]
audiomixer: Fix and simplify overlap calculation
Sebastian Dröge [Thu, 19 Dec 2013 20:59:09 +0000 (21:59 +0100)]
audiomixer: Also resync timestamps on the RESYNC flag
Sebastian Dröge [Thu, 7 Nov 2013 13:12:17 +0000 (14:12 +0100)]
audiomixer: Add unit test for handling unaligned buffers
That is, buffers that start or end in the middle of an output block.
Sebastian Dröge [Thu, 7 Nov 2013 13:12:00 +0000 (14:12 +0100)]
audiomixer: Fix EOS handling if we have some pending data
Sebastian Dröge [Thu, 7 Nov 2013 12:57:35 +0000 (13:57 +0100)]
audiomixer: Add test for the discont handling
Sebastian Dröge [Thu, 7 Nov 2013 12:55:32 +0000 (13:55 +0100)]
audiomixer: Refactor sync test to be more reusable
Sebastian Dröge [Thu, 7 Nov 2013 12:48:06 +0000 (13:48 +0100)]
audiomixer: Remove some racy-ness from the unit test
We might already be EOS when we start the mainloop, so only
set the pipeline to PLAYING from the main loop.
Sebastian Dröge [Wed, 6 Nov 2013 14:50:08 +0000 (15:50 +0100)]
audiomixer: Don't take channel mask in consideration in mono or stereo
This could cause negotiation to fail.
https://bugzilla.gnome.org/show_bug.cgi?id=708633
Sebastian Dröge [Wed, 6 Nov 2013 14:18:58 +0000 (15:18 +0100)]
audiomixer: Add simply synchronization test
Sebastian Dröge [Wed, 6 Nov 2013 14:18:50 +0000 (15:18 +0100)]
audiomixer: Add new element based on adder that does synchronized audio mixing