History log of /haiku/src/add-ons/media/media-add-ons/mixer/AudioMixer.h
Revision Date Author Comments
# 8c19f07f 11-Jun-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: check for errors.

* Improve CreateBufferGroup function.
* Initialize variables.
* Check for BBufferGroup::InitCheck.


# ba5e652d 03-Nov-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Set of patches by Pete Goodeve to imrpove the handling of audio latency.
Closes #7285.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43164 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b289aaf6 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* A BBuffer does not know where it came from, so
BBufferConsumer::BufferReceived() cannot know whom to send the "buffer is
late" notification (unless we only have a single input). To solve this, the
media_header now contains extra fields that can be used to create a
media_source object.
* Unfortunately, BBufferProducer::SendBuffer() cannot know the output either in
case there is more than one. Hence, I deprecated the existing SendBuffer()
call and moved it into "private" - IOW old sources using it won't compile
anymore under Haiku.
* I introduced a new SendBuffer() variant that also gets the media_source as
argument.
* Updated all sources (that are part of the image) to use the new variant.
* Removed some purposely commented out code in the audio mixer.
* Implemented late buffer notification, as well as late buffer handling in the
audio mixer; this is a bit of work in progress, so the debug output is left
in there.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36184 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a9cf57cf 02-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34437 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf7ab50d 03-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

large patch by Bek (HOST team):
* style improvements, header reformatting, small refactoring and adding
of missing copyrights

(to Marcus: this is not the original patch, it has already been revised two
times by myself and I thought it was very nice now)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22426 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dfbe8043 08-Sep-2003 beveloper <beveloper@nowhere.fake>

I fixed a timing bug. The mixer was accidentally sending itself
a notification about downstream latency change, when it really
should have send that to the connected inputs. This is now done
by the PublishEventLatencyChange() function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4567 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1165d5e1 17-Aug-2003 beveloper <beveloper@nowhere.fake>

added support for a settings file,
some fixes in the deferred saving code,
added save/load to mixer connections


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4294 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4224efc3 16-Aug-2003 beveloper <beveloper@nowhere.fake>

implemeted non linear gain controls (similar to BeOS R5)
allow to select gain control slider modus in setup
(either controls physical input, or virtual output channels)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26bf7cd3 16-Aug-2003 beveloper <beveloper@nowhere.fake>

added mixer setup tab functionality and storage of settings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4287 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3b1c2a6 04-Jul-2003 beveloper <beveloper@nowhere.fake>

Implemented proper handling of latency changes that occur when connecting
a chain of mixer nodes. Also added a small hack to always pick the optimal
frame rate and channel count when connecting multiple audio mixer nodes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3848 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c237c18 30-Jun-2003 beveloper <beveloper@nowhere.fake>

implemented mute support for input channel, fixed casting bugs


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3777 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9391f0a5 30-Jun-2003 beveloper <beveloper@nowhere.fake>

added mixer gain controls


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3775 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16cecbde 25-Jun-2003 beveloper <beveloper@nowhere.fake>

some workarounds, fMixStartTime is now always 0,
delay mix thread if timesource has negative time,
calculate correct time and frame base for mix thread


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3663 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ee2c804 15-Jun-2003 beveloper <beveloper@nowhere.fake>

Internal API rewritten, BMediaNode and derived classes functionality implemented.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3525 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be2a2489 11-Jun-2003 beveloper <beveloper@nowhere.fake>

Mixer rewrite, work in progress.
Moved Input and Output handling into the MixerCore class,
format and connection negotiation remains in AudioMixer class.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 545124e6 05-Jun-2003 beveloper <beveloper@nowhere.fake>

disable node stopping on the system mixer


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3432 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ab3e018 30-May-2003 beveloper <beveloper@nowhere.fake>

bugfixes and debug information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3390 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bedd42c 29-May-2003 beveloper <beveloper@nowhere.fake>

many fixes to improve timing


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5bc7143b 28-Sep-2002 shatty <shatty@nowhere.fake>

fixed some casting bugs
fixed newline at end of file


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ea83877f 17-Aug-2002 beveloper <beveloper@nowhere.fake>

David Shipman provides this update to the audio mixer add-on


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@808 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 00cffa1c 09-Aug-2002 beveloper <beveloper@nowhere.fake>

David Shipman started implementing the BeOS system audio mixer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@681 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c19f07f3c8f5936e4dfdee463ee2065b0c26471 11-Jun-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: check for errors.

* Improve CreateBufferGroup function.
* Initialize variables.
* Check for BBufferGroup::InitCheck.


# ba5e652d79a41a15230b0940003e7dc352b41974 03-Nov-2011 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Set of patches by Pete Goodeve to imrpove the handling of audio latency.
Closes #7285.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@43164 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b289aaf66bbf6e173aa90fa194fc256965f1b34d 12-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* A BBuffer does not know where it came from, so
BBufferConsumer::BufferReceived() cannot know whom to send the "buffer is
late" notification (unless we only have a single input). To solve this, the
media_header now contains extra fields that can be used to create a
media_source object.
* Unfortunately, BBufferProducer::SendBuffer() cannot know the output either in
case there is more than one. Hence, I deprecated the existing SendBuffer()
call and moved it into "private" - IOW old sources using it won't compile
anymore under Haiku.
* I introduced a new SendBuffer() variant that also gets the media_source as
argument.
* Updated all sources (that are part of the image) to use the new variant.
* Removed some purposely commented out code in the audio mixer.
* Implemented late buffer notification, as well as late buffer handling in the
audio mixer; this is a bit of work in progress, so the debug output is left
in there.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36184 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a9cf57cff5dfe040f74a96705d98d6711b6b1b50 02-Dec-2009 Axel Dörfler <axeld@pinc-software.de>

* Cleanup, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34437 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bf7ab50d4ced3f1735551c8f6d9032a42e548f7e 03-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

large patch by Bek (HOST team):
* style improvements, header reformatting, small refactoring and adding
of missing copyrights

(to Marcus: this is not the original patch, it has already been revised two
times by myself and I thought it was very nice now)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22426 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dfbe8043fafe879bbceb621762b62d088a117690 08-Sep-2003 beveloper <beveloper@nowhere.fake>

I fixed a timing bug. The mixer was accidentally sending itself
a notification about downstream latency change, when it really
should have send that to the connected inputs. This is now done
by the PublishEventLatencyChange() function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4567 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1165d5e18aa006db62ac40a8d218d7affb5151f7 17-Aug-2003 beveloper <beveloper@nowhere.fake>

added support for a settings file,
some fixes in the deferred saving code,
added save/load to mixer connections


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4294 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4224efc3c723b348c02b0bd4b6b75497f6624dbd 16-Aug-2003 beveloper <beveloper@nowhere.fake>

implemeted non linear gain controls (similar to BeOS R5)
allow to select gain control slider modus in setup
(either controls physical input, or virtual output channels)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4288 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26bf7cd399550ff1c49b40a77780b0a0afbcfd14 16-Aug-2003 beveloper <beveloper@nowhere.fake>

added mixer setup tab functionality and storage of settings


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4287 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3b1c2a692c2a585fd259e62da158cf8fec7199d 04-Jul-2003 beveloper <beveloper@nowhere.fake>

Implemented proper handling of latency changes that occur when connecting
a chain of mixer nodes. Also added a small hack to always pick the optimal
frame rate and channel count when connecting multiple audio mixer nodes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3848 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c237c1852883cd806f6b7f712f8d76c430d83ba 30-Jun-2003 beveloper <beveloper@nowhere.fake>

implemented mute support for input channel, fixed casting bugs


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3777 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9391f0a5526a6a1efb50e7ca73f1d07ac1c93ee2 30-Jun-2003 beveloper <beveloper@nowhere.fake>

added mixer gain controls


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3775 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 16cecbde360eb5fc03598dc7d05fb2d9be9b6931 25-Jun-2003 beveloper <beveloper@nowhere.fake>

some workarounds, fMixStartTime is now always 0,
delay mix thread if timesource has negative time,
calculate correct time and frame base for mix thread


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3663 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7ee2c8049caebce89fd72e544a5db9f94cc6613f 15-Jun-2003 beveloper <beveloper@nowhere.fake>

Internal API rewritten, BMediaNode and derived classes functionality implemented.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3525 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be2a24894fa4b3e2578b1d1994d33bbb2b935216 11-Jun-2003 beveloper <beveloper@nowhere.fake>

Mixer rewrite, work in progress.
Moved Input and Output handling into the MixerCore class,
format and connection negotiation remains in AudioMixer class.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3481 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 545124e6a1fe13d71d2ca422b76992e0fa8e9afb 05-Jun-2003 beveloper <beveloper@nowhere.fake>

disable node stopping on the system mixer


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3432 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1ab3e018978a65e71ffe20141d51ae4e591f67de 30-May-2003 beveloper <beveloper@nowhere.fake>

bugfixes and debug information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3390 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9bedd42cd1e0fdb44e39be7ef4f3c76786d59b50 29-May-2003 beveloper <beveloper@nowhere.fake>

many fixes to improve timing


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3386 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5bc7143bb9290ce9648a2b5f894a7ea44a3f45af 28-Sep-2002 shatty <shatty@nowhere.fake>

fixed some casting bugs
fixed newline at end of file


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1241 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ea83877f0b04404ca20720d89179c4531e678a2d 17-Aug-2002 beveloper <beveloper@nowhere.fake>

David Shipman provides this update to the audio mixer add-on


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@808 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 00cffa1ce7235854c27cf1ea86b760c51de04800 09-Aug-2002 beveloper <beveloper@nowhere.fake>

David Shipman started implementing the BeOS system audio mixer.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@681 a95241bf-73f2-0310-859d-f6bbb57e9c96