History log of /haiku/src/add-ons/media/media-add-ons/opensound/OpenSoundNode.cpp
Revision Date Author Comments
# 425ac1b6 20-Jun-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

refactor: Swap %Ld for %lld in all format usages

* %Ld is an undocumented alias for %lld in glibc.
* muslc doesn't implement it for this reason.
* While we will likely never drop %Ld support,
lets clean house and set a better example.

Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# fb5c24d8 09-Oct-2021 Adrien Destugues <pulkomandy@pulkomandy.tk>

MediaAddOn: missing const

Pretty much all add-ons are setting this to point to a const string, so
we should make sure that nothing tries to modify it.


# 1f7ac296 01-Nov-2020 Murai Takashi <tmurai01@gmail.com>

media-add-ons/opensound: Fix -Wvla-larger-than=

Change-Id: Id98018caf81ce8a2eb1069c52ee80a5ee00bfacb
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3378
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 38b01557 24-May-2019 Augustin Cavalier <waddlesplash@gmail.com>

Media: Use assignment operators instead of memset.

Spotted by GCC 8 -Werror=class-memaccess.


# d4cfae74 05-Aug-2016 François Revol <revol@free.fr>

opensound: quit the node threads before recycling buffers on dtor

This works around a KDL in the driver due to the buffer address passed
to write() being unmapped in the destructor, and the driver doesn't
properly checks those yet (BeOS used to lock_memory() on read/write buffers).


# 6d2f2ec1 24-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Rework nodes to call Run() only after registration

* While it should not be a big problem the
bebook specify to do it after custom operations,
most nodes also follow this way, this commit restore
consistency.


# c7000dc3 10-May-2013 Jérôme Duval <jerome.duval@gmail.com>

opensound.media_addon: fixes 64 bit warnings


# eb5f3639 12-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Fixes some occurrences of 'variable set but not used', disables Werror for problematic items.


# 423affc2 06-Jan-2012 Michael Lotz <mmlr@mlotz.ch>

Fix warnings for DEBUG build. Build with tracing still broken.

This is a modified version of a patch in #8252 by Urias McCullough.


# 4c9da6dc 06-Nov-2010 Stephan Aßmus <superstippi@gmx.de>

Applied patch by kaliber from ticket #6349. which fixes quite a
few warnings. Thanks! I did not apply the hunks about moving
a logging function in the common accelerant code to be static.


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


# eddec292 21-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* applied patch by kaliber that fixes more than 100 warnings - thanks a lot!
Closes #6349

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


# 67710adc 12-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

Fixed CID 1303. The config message was dereferenced in the constructor list.
I don't know if it can be NULL at all, but let's be defensive. It was
already checked later anyways.


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


# 5ff7609d 24-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

* Cache the silence buffer instead of allocating a new one each time and
writing zeros into it in a real time thread.
* Use a different method to calculate the drift. The old method would generate
a stable drift value after some time, but somehow the drift gave problems
after a while. For example on Haiku, the MediaPlayer would stop playing
stuff after several hours of uptime. The new method calculates the drift
for just the last written buffer, like the Multi-Audio node does, but
averages the result over the last 64 drift values in order to smooth out
sudden changes. Seems to work well on Haiku, on BeOS, the sound quality seems
to be a bit worse (the BeOS mixer actually resamples each buffer according
to current drift).


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


# 773ead23 20-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Added note about the remaining playback problem for using OSS in BeOS.


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


# d3ebd784 20-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Victory! With these changes, playback is nearly perfect under BeOS (tested with
C-Media based sound card). In Haiku, I could test with HD Audio, and playback
has clicks. It doesn't seem to have to do with the "drift", which is now
correctly published, I am not sure what exactly is causing it, I would like to
test on different hardware yet.
* I have modified the buffering policy (4 will give about 2048 bytes internal
OSS buffer), which decreases the latency of the node to an acceptable value.
* I completely replaced the timesource publishing algo to be more reliable.
* Removed now unnecessary methods from OpenSoundDeviceEngine.


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


# 1a5c9214 12-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

* More WIP cleanup and simplifications
* Fixed another memory leak in NodeRegistered()


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


# 08c82102 11-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Work in progress:
* Cleaning up and refactoring the OpenSoundNode code to use a single coding
style and be less C-like in many places.
* Fixed quite a few memory leaks in OpenSoundNode.
* Removed large chunks of inactive code originating from the MultiAudioNode.
* Transfered some functionality into NodeInput and NodeOutput, could be more.
* No functional changes.


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


# 344b8145 09-Jun-2008 François Revol <revol@free.fr>

work in progress: use one thread per connected channel, and a BList of BBuffer * to avoid dropping them. Disabled early buffer recycling as latency calculation is still broken. I can now play something without missing buffers.


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


# de6be214 28-Aug-2007 François Revol <revol@free.fr>

OpenSound System media node, current version.


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


# 6d2f2ec177bf615a117a7428d71be4330545b320 24-Jul-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

Rework nodes to call Run() only after registration

* While it should not be a big problem the
bebook specify to do it after custom operations,
most nodes also follow this way, this commit restore
consistency.


# c7000dc3eeeeb54e7bff219134166367290ca600 10-May-2013 Jérôme Duval <jerome.duval@gmail.com>

opensound.media_addon: fixes 64 bit warnings


# eb5f36397841abfc740031fde56ca5e4dee9fdd3 12-Feb-2012 Jerome Duval <jerome.duval@gmail.com>

Fixes some occurrences of 'variable set but not used', disables Werror for problematic items.


# 423affc20971403399ea837db07ba292cb200fed 06-Jan-2012 Michael Lotz <mmlr@mlotz.ch>

Fix warnings for DEBUG build. Build with tracing still broken.

This is a modified version of a patch in #8252 by Urias McCullough.


# 4c9da6dc09e79654948b64ba600c4d4b1b12109e 06-Nov-2010 Stephan Aßmus <superstippi@gmx.de>

Applied patch by kaliber from ticket #6349. which fixes quite a
few warnings. Thanks! I did not apply the hunks about moving
a logging function in the common accelerant code to be static.


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


# eddec292d5dd8251a00851880e16e6a5c07c1e3f 21-Jul-2010 Oliver Tappe <zooey@hirschkaefer.de>

* applied patch by kaliber that fixes more than 100 warnings - thanks a lot!
Closes #6349

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


# 67710adc92b44af5483b1d1fafdb09a0e16e2303 12-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

Fixed CID 1303. The config message was dereferenced in the constructor list.
I don't know if it can be NULL at all, but let's be defensive. It was
already checked later anyways.


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


# 5ff7609dce2bbbec5db800675d7b993780132991 24-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

* Cache the silence buffer instead of allocating a new one each time and
writing zeros into it in a real time thread.
* Use a different method to calculate the drift. The old method would generate
a stable drift value after some time, but somehow the drift gave problems
after a while. For example on Haiku, the MediaPlayer would stop playing
stuff after several hours of uptime. The new method calculates the drift
for just the last written buffer, like the Multi-Audio node does, but
averages the result over the last 64 drift values in order to smooth out
sudden changes. Seems to work well on Haiku, on BeOS, the sound quality seems
to be a bit worse (the BeOS mixer actually resamples each buffer according
to current drift).


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


# 773ead235bc913a889b19fd58b7ffff2fba7c8c7 20-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Added note about the remaining playback problem for using OSS in BeOS.


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


# d3ebd7843a3213faec345614eb49802fef872436 20-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Victory! With these changes, playback is nearly perfect under BeOS (tested with
C-Media based sound card). In Haiku, I could test with HD Audio, and playback
has clicks. It doesn't seem to have to do with the "drift", which is now
correctly published, I am not sure what exactly is causing it, I would like to
test on different hardware yet.
* I have modified the buffering policy (4 will give about 2048 bytes internal
OSS buffer), which decreases the latency of the node to an acceptable value.
* I completely replaced the timesource publishing algo to be more reliable.
* Removed now unnecessary methods from OpenSoundDeviceEngine.


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


# 1a5c921404624a6eec8d0325977883b1371b089c 12-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

* More WIP cleanup and simplifications
* Fixed another memory leak in NodeRegistered()


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


# 08c82102cfa929042c6f33aa2e9b9edab276f5be 11-Jun-2008 Stephan Aßmus <superstippi@gmx.de>

Work in progress:
* Cleaning up and refactoring the OpenSoundNode code to use a single coding
style and be less C-like in many places.
* Fixed quite a few memory leaks in OpenSoundNode.
* Removed large chunks of inactive code originating from the MultiAudioNode.
* Transfered some functionality into NodeInput and NodeOutput, could be more.
* No functional changes.


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


# 344b81452ea34c7b6afaee5c25a0db64935a3d37 09-Jun-2008 François Revol <revol@free.fr>

work in progress: use one thread per connected channel, and a BList of BBuffer * to avoid dropping them. Disabled early buffer recycling as latency calculation is still broken. I can now play something without missing buffers.


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


# de6be214a057eaff48008ca30a411a868aedad19 28-Aug-2007 François Revol <revol@free.fr>

OpenSound System media node, current version.


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