Skip to content

Commit

Permalink
[visualisation] Don't restrict the sample buffer to 256 samples
Browse files Browse the repository at this point in the history
Allow visualisation to see all the audio samples. That is necessary to display more than 256 samples of waveform
or do longer ffts. Fixes an issus with discontinuity in shadertoy visualisation
  • Loading branch information
popcornmix committed Sep 7, 2015
1 parent 32d2338 commit 82e35bf
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 6 deletions.
6 changes: 3 additions & 3 deletions xbmc/addons/Visualisation.cpp
Expand Up @@ -262,7 +262,7 @@ void CVisualisation::OnAudioData(const float* pAudioData, int iAudioDataLength)
return;

// Save our audio data in the buffers
std::unique_ptr<CAudioBuffer> pBuffer ( new CAudioBuffer(AUDIO_BUFFER_SIZE) );
std::unique_ptr<CAudioBuffer> pBuffer ( new CAudioBuffer(iAudioDataLength) );
pBuffer->Set(pAudioData, iAudioDataLength);
m_vecBuffers.push_back( pBuffer.release() );

Expand All @@ -281,11 +281,11 @@ void CVisualisation::OnAudioData(const float* pAudioData, int iAudioDataLength)
m_transform->calc(psAudioData, m_fFreq);

// Transfer data to our visualisation
AudioData(psAudioData, AUDIO_BUFFER_SIZE, m_fFreq, AUDIO_BUFFER_SIZE/2); // half due to complex-conjugate
AudioData(psAudioData, iAudioDataLength, m_fFreq, AUDIO_BUFFER_SIZE/2); // half due to complex-conjugate
}
else
{ // Transfer data to our visualisation
AudioData(ptrAudioBuffer->Get(), AUDIO_BUFFER_SIZE, NULL, 0);
AudioData(ptrAudioBuffer->Get(), iAudioDataLength, NULL, 0);
}
return ;
}
Expand Down
5 changes: 2 additions & 3 deletions xbmc/cores/AudioEngine/Engines/ActiveAE/ActiveAE.cpp
Expand Up @@ -2028,7 +2028,7 @@ bool CActiveAE::RunStages()
{
// copy the samples into the viz input buffer
CSampleBuffer *viz = m_vizBuffersInput->GetFreeBuffer();
int samples = std::min(512, out->pkt->nb_samples);
int samples = out->pkt->nb_samples;
int bytes = samples * out->pkt->config.channels / out->pkt->planes * out->pkt->bytes_per_sample;
for(int i= 0; i < out->pkt->planes; i++)
{
Expand All @@ -2051,8 +2051,7 @@ bool CActiveAE::RunStages()
break;
else
{
int samples;
samples = std::min(512, buf->pkt->nb_samples);
int samples = buf->pkt->nb_samples;
m_audioCallback->OnAudioData((float*)(buf->pkt->data[0]), samples);
buf->Return();
m_vizBuffers->m_outputSamples.pop_front();
Expand Down

0 comments on commit 82e35bf

Please sign in to comment.