[haiku-development] Re: Considering the audio Mixer formats

  • From: Pete Goodeve <pete.goodeve@xxxxxxxxxxxx>
  • To: haiku-development@xxxxxxxxxxxxx
  • Date: Mon, 8 Feb 2016 14:49:47 -0800

On Mon, Feb 08, 2016 at 01:48:17AM +0100, Dario Casalinuovo wrote:


And indeed, I could start SoundPlay and SoundRecorder; in Cortex
disconnect SP from the mixer and reconnect to SR.  SR would happily
record the signal from SP.  I could (usually) disconnect and reconnect
as often as i wanted and regain the transfer.


I tried to fix this problem in the BMediaRecorder implementation, but the
first issue you may see is that the BBufferConsumer::Connected() doesn't
specify which node and which output is being connected.

BMediaRoster::Connect needs a media_output and we are using this along with
the output node reference to do other things such as setting the time
source. We can easily get a reference to the the node using the
BMediaRoster and the id in the media_source struct, it's not the same for
the media_output and we can't trivially get it, but the BMediaRecorder
class still need it to perform it's operations and when the record button
is pressed it can't do much.
I'm not sure if there's something that we are not doing, such as dealing
with setting and starting time sources in those particular cases, but
considering the BMediaRecorder should have been written by someone knowing
the API, things aren't really clear.

Seems to me that the highest priority should be to get major limitations
like this fixed up before thinking about rejigging the mixer to double-only
or such.  Didn't Haiku follow the BeOS headers, so anything that worked
there should also be good in Haiku?  To me, connection flexibility would
be of the greatest importance.

Also, quite a while back I submitted ticket #9438 that the mixer's
interpolation was buggy.  Adrien reported it fixed over a year ago,
but I just checked, and (in hrev49993) it's just as it was before!
I never installed a system around the fix time (hrev48460) so I'm
afraid I don't know if it was fixed for me back then.

        -- Pete --

Other related posts: