implemented audio decoder and some of the audio node functionality

This commit is contained in:
itsmattkc
2019-10-24 21:33:46 +11:00
parent af702835da
commit 076f2699c5
12 changed files with 98 additions and 43 deletions
+23 -1
View File
@@ -2,7 +2,9 @@
AudioInput::AudioInput()
{
samples_output_ = new NodeOutput("samples_out");
samples_output_->set_data_type(NodeInput::kSamples);
AddParameter(samples_output_);
}
QString AudioInput::Name()
@@ -24,3 +26,23 @@ QString AudioInput::Description()
{
return tr("Import an audio footage stream.");
}
QVariant AudioInput::Value(NodeOutput *output, const rational &in, const rational &out)
{
if (output == samples_output_) {
// Make sure decoder is set up
if (!SetupDecoder()) {
return 0;
}
// Retrieve audio samples from decoder
frame_ = decoder_->Retrieve(in, out - in);
QByteArray samples;
samples.resize(frame_->audio_params().samples_to_bytes(frame_->sample_count()));
memcpy(samples.data(), frame_->data(), static_cast<size_t>(samples.size()));
return samples;
}
return 0;
}