cache: fixed audio with new system

This commit is contained in:
itsmattkc
2020-05-18 17:16:28 +10:00
parent 127ebbe359
commit 558773538d
7 changed files with 121 additions and 63 deletions
+2 -14
View File
@@ -107,17 +107,12 @@ SampleBufferPtr RenderWorker::RenderAudio(const TimeRange &range)
QMutexLocker locker(&lock_);
parent_->WorkerStartedRenderingAudio(range);
UpdateData(true);
audio_render_time_ = range;
qDebug() << "Audio deps:";
QList<Node*> d = viewer_->samples_input()->GetDependencies();
foreach (Node* n, d) {
qDebug() << " " << n;
}
NodeValueTable table = ProcessInput(viewer_->samples_input(), range);
QVariant samples = table.Get(NodeParam::kSamples);
@@ -314,8 +309,6 @@ void RenderWorker::ProcessNodeEvent(const Node *node, const TimeRange &range, No
void RenderWorker::FootageProcessingEvent(StreamPtr stream, const TimeRange &input_time, NodeValueTable *table)
{
qDebug() << "Stream type" << stream->type();
if (stream->type() == Stream::kVideo || stream->type() == Stream::kImage) {
ImageStreamPtr video_stream = std::static_pointer_cast<ImageStream>(stream);
@@ -355,7 +348,6 @@ void RenderWorker::FootageProcessingEvent(StreamPtr stream, const TimeRange &inp
} else if (stream->type() == Stream::kAudio) {
qDebug() << "Hello!";
table->Push(GetDataFromStream(stream, input_time));
}
@@ -369,18 +361,14 @@ NodeValue RenderWorker::GetDataFromStream(StreamPtr stream, const TimeRange &inp
if (stream->type() == Stream::kVideo || stream->type() == Stream::kImage) {
return FrameToTexture(decoder, stream, input_time);
} else if (stream->type() == Stream::kAudio) {
qDebug() << "Decoding audio!";
if (decoder->HasConformedVersion(audio_params())) {
qDebug() << " Retrieving audio!";
SampleBufferPtr frame = decoder->RetrieveAudio(input_time.in(), input_time.length(),
audio_params());
if (frame) {
qDebug() << " Returning audio!";
return NodeValue(NodeParam::kSamples, QVariant::fromValue(frame));
}
} else {
qDebug() << " Conform doesn't exist! AAAAA";
emit AudioConformUnavailable(decoder->stream(), audio_render_time_,
input_time.out(), audio_params());
}