Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

API: Allow caching for output ports #602

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Commits on Jun 25, 2020

  1. API: Allow caching for output ports

    This commit reverts 3d97601 ("More documentation in jack.h") partly.
    
    The following call stack is used:
    jack_port_get_buffer()
    JackGraphManager::GetBuffer(jack_port_id_t, jack_nframes_t)
    JackGraphManager::GetBuffer(jack_port_id_t)
    JackPort::GetBuffer()
    
    To call JackGraphManager::GetBuffer(jack_port_id_t, jack_nframes_t)
    the object JackLibGlobals::fGlobals->fGraphManage is used. It is only
    set in JackLibClient::Open(). Therefore it is not changed in the life
    time of a JACK client.
    
    In case port->fTied will be modified at runtime the returned audio
    buffer would change. This variable can only be modified by the
    deprecated jack_port_tie() function. Therefore as long as not calling
    this deprecated function the audio buffer would not change.
    
    The previous analyses is only valid for JACK audio output ports
    (JackPortIsOutput). The creating JACK client can write to those
    ports. For JACK audio input ports (JackPortIsInput) it is still not
    allowed to cache the audio buffer address because for those ports the
    returned audio buffer is depending on the port connections
    (pipelining). The decision for the pipelining is done in
    JackGraphManager::GetBuffer(jack_port_id_t, jack_nframes_t).
    
    Change-Id: Ief1cd18d018d5e407876630c22254d87f3c55442
    Signed-off-by: Timo Wischer <twischer@de.adit-jv.com>
    Timo Wischer committed Jun 25, 2020
    Configuration menu
    Copy the full SHA
    e9aad64 View commit details
    Browse the repository at this point in the history