History log of /haiku/src/add-ons/media/media-add-ons/mixer/MixerCore.h
Revision Date Author Comments
# b0dd37b7 11-Apr-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

AudioMixer: Review and rework synchronization

* The event time is managed through the main node control
loop.
* Make the mix thread to activate only when needed.
* Make the locking more simple and remove a race condition,
this will make the thread to be more silent too.


# b006bbe1 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Resolved TODO and implemented updating resampling implementation on the fly.
* Reordered some methods in the source to align with declaration order.
* Applied naming conventions for private methods.
* Switched asterix style in MixerInput.


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


# 4cc71346 30-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed more coding style violations.


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


# c21a83bb 30-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

A few more coding style fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38442 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


# 8152b7d1 17-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

Coding style consistency.


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


# 7ebabb86 15-Oct-2007 Jérôme Duval <korli@users.berlios.de>

more on gcc4 build fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22580 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


# ff14d245 06-Feb-2006 Jérôme Duval <korli@users.berlios.de>

* mixer media addon builds on beos, fixed includes missing
* added 24 bits B_AUDIO_INT support (20 bits still missing)
Marcus please review and fix if needed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16253 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


# 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


# ab276ac8 03-Jul-2003 beveloper <beveloper@nowhere.fake>

added a dedicated mono channel type, allows nicer mapping of 1 channel input


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


# 0c63c7d0 02-Jul-2003 beveloper <beveloper@nowhere.fake>

Started implementing input and output channel mapping controls.
Optimized inner loop of mix thread, up to 10% faster now.
Moved some #includes around.
Added #define for maximum supported channel types.
Removed static buffers.


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


# 191033ef 29-Jun-2003 beveloper <beveloper@nowhere.fake>

debugging improvement, fixed locking, fixed sample copy bug in channel 1


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


# d5848e21 28-Jun-2003 beveloper <beveloper@nowhere.fake>

rewrote start and stop handling to allow connecting an input without
having an output, followed by starting the node.
fix some bugs of handling an unconnected output
added better locking to the mix thread


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


# 8d28117f 28-Jun-2003 beveloper <beveloper@nowhere.fake>

multiple bugfixes, but still many pops in output audio stream


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


# 78563dca 25-Jun-2003 beveloper <beveloper@nowhere.fake>

use sample size when calculating channel offsets, no more buffer overruns


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3664 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


# b9bc8577 24-Jun-2003 beveloper <beveloper@nowhere.fake>

added mixing thread, as well as start and stop


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


# 7b0daf5c 24-Jun-2003 beveloper <beveloper@nowhere.fake>

allocate mixer buffers of the correct size,
place incoming data in input specific mix buffer


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


# c6f7aae1 20-Jun-2003 beveloper <beveloper@nowhere.fake>

synced


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


# 2e9d6607 20-Jun-2003 beveloper <beveloper@nowhere.fake>

mixer input buffer assignment and gain setting implemented


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


# e6c7c99f 19-Jun-2003 beveloper <beveloper@nowhere.fake>

added connecting/disconnecting of inputs/outputs
changed debug functions
added multiaudio format correction
added workaround for broken BeOS R5 media_format:SpecializeTo()
fixed AudioMixer::Connect function to use correct destination
added utility functions
fixed locking bugs


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3575 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


# 678c2017 06-Jun-2003 beveloper <beveloper@nowhere.fake>

added new mixer components


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


# b006bbe1304984932aa2bb114a332a63c2c3cc03 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Resolved TODO and implemented updating resampling implementation on the fly.
* Reordered some methods in the source to align with declaration order.
* Applied naming conventions for private methods.
* Switched asterix style in MixerInput.


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


# 4cc71346c483bf425e3939bab9beb8b30d4243f9 30-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Fixed more coding style violations.


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


# c21a83bb4624220483c2831f3604efb8dd353d91 30-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

A few more coding style fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38442 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


# 8152b7d177f574272401a72d572237f349978c2a 17-Apr-2009 Stephan Aßmus <superstippi@gmx.de>

Coding style consistency.


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


# 7ebabb8644d955041e7b4cb9a51629cb5a6071ca 15-Oct-2007 Jérôme Duval <korli@users.berlios.de>

more on gcc4 build fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22580 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


# ff14d2457aff9cf4b08cb8d7765c1bbc450c2ba4 06-Feb-2006 Jérôme Duval <korli@users.berlios.de>

* mixer media addon builds on beos, fixed includes missing
* added 24 bits B_AUDIO_INT support (20 bits still missing)
Marcus please review and fix if needed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16253 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


# 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


# ab276ac888364ea2a0af144d16d62d6505ac48a7 03-Jul-2003 beveloper <beveloper@nowhere.fake>

added a dedicated mono channel type, allows nicer mapping of 1 channel input


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


# 0c63c7d061f2d4490205d48b1e5008c8a2cf95f2 02-Jul-2003 beveloper <beveloper@nowhere.fake>

Started implementing input and output channel mapping controls.
Optimized inner loop of mix thread, up to 10% faster now.
Moved some #includes around.
Added #define for maximum supported channel types.
Removed static buffers.


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


# 191033ef7649dec787b14d158a54eed82d12c3b9 29-Jun-2003 beveloper <beveloper@nowhere.fake>

debugging improvement, fixed locking, fixed sample copy bug in channel 1


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


# d5848e21a402ad57ae434b9982560e0f9c2c0dbf 28-Jun-2003 beveloper <beveloper@nowhere.fake>

rewrote start and stop handling to allow connecting an input without
having an output, followed by starting the node.
fix some bugs of handling an unconnected output
added better locking to the mix thread


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


# 8d28117ff7c15fa966ab55e20e5e343d89186097 28-Jun-2003 beveloper <beveloper@nowhere.fake>

multiple bugfixes, but still many pops in output audio stream


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


# 78563dcaec7a619acac5e67d8c47393133e009e2 25-Jun-2003 beveloper <beveloper@nowhere.fake>

use sample size when calculating channel offsets, no more buffer overruns


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3664 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


# b9bc85776c298ca9cfc114225ab0cf7c8cf5dfba 24-Jun-2003 beveloper <beveloper@nowhere.fake>

added mixing thread, as well as start and stop


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


# 7b0daf5ccadfdb073a738f291a2f4a74b29c46f0 24-Jun-2003 beveloper <beveloper@nowhere.fake>

allocate mixer buffers of the correct size,
place incoming data in input specific mix buffer


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


# c6f7aae127dd54ab12acfac324ee538f4ff65ece 20-Jun-2003 beveloper <beveloper@nowhere.fake>

synced


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


# 2e9d660756e64ccd9bd2b779020a167b8c7a5824 20-Jun-2003 beveloper <beveloper@nowhere.fake>

mixer input buffer assignment and gain setting implemented


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


# e6c7c99fc916e8a498ef51a4940838d9f864df6c 19-Jun-2003 beveloper <beveloper@nowhere.fake>

added connecting/disconnecting of inputs/outputs
changed debug functions
added multiaudio format correction
added workaround for broken BeOS R5 media_format:SpecializeTo()
fixed AudioMixer::Connect function to use correct destination
added utility functions
fixed locking bugs


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3575 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


# 678c20170c8b023b7d2e297b3ac436dbdea61e52 06-Jun-2003 beveloper <beveloper@nowhere.fake>

added new mixer components


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