various: encapsulate all code in the olive namespace to avoid name collisions

Large-scale code cleanup. Also adds a license to the top of all files that were
missing it.
This commit is contained in:
itsmattkc
2020-04-06 15:29:53 +10:00
parent 82b6ddccc8
commit 1aa87cbda6
519 changed files with 7939 additions and 158 deletions
+24
View File
@@ -1,9 +1,31 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "audioparams.h"
extern "C" {
#include <libavformat/avformat.h>
}
OLIVE_NAMESPACE_ENTER
AudioParams::AudioParams() :
sample_rate_(0),
channel_layout_(0)
@@ -151,3 +173,5 @@ bool AudioRenderingParams::is_valid() const
return valid;
}
OLIVE_NAMESPACE_EXIT
+25 -1
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef AUDIOPARAMS_H
#define AUDIOPARAMS_H
@@ -6,6 +26,8 @@
#include "audio/sampleformat.h"
#include "common/rational.h"
OLIVE_NAMESPACE_ENTER
class AudioParams
{
public:
@@ -49,6 +71,8 @@ private:
SampleFormat::Format format_;
};
Q_DECLARE_METATYPE(AudioRenderingParams)
OLIVE_NAMESPACE_EXIT
Q_DECLARE_METATYPE(OLIVE_NAMESPACE::AudioRenderingParams)
#endif // AUDIOPARAMS_H
+24
View File
@@ -1,7 +1,29 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "audiobackend.h"
#include "audioworker.h"
OLIVE_NAMESPACE_ENTER
AudioBackend::AudioBackend(QObject *parent) :
AudioRenderBackend(parent)
{
@@ -105,3 +127,5 @@ void AudioBackend::ThreadCompletedCache(NodeDependency dep, NodeValueTable data,
CacheNext();
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef AUDIOBACKEND_H
#define AUDIOBACKEND_H
@@ -5,6 +25,8 @@
#include "../audiorenderbackend.h"
OLIVE_NAMESPACE_ENTER
class AudioBackend : public AudioRenderBackend
{
Q_OBJECT
@@ -34,4 +56,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // AUDIOBACKEND_H
+24
View File
@@ -1,5 +1,27 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "audioworker.h"
OLIVE_NAMESPACE_ENTER
AudioWorker::AudioWorker(DecoderCache* decoder_cache, QHash<Node *, Node *> *copy_map, QObject *parent) :
AudioRenderWorker(decoder_cache, copy_map, parent)
{
@@ -81,3 +103,5 @@ void AudioWorker::RunNodeAccelerated(const Node *node, const TimeRange &range, c
output_params->Push(NodeParam::kSamples, QVariant::fromValue(output_buffer));
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,8 +1,30 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef AUDIOWORKER_H
#define AUDIOWORKER_H
#include "../audiorenderworker.h"
OLIVE_NAMESPACE_ENTER
class AudioWorker : public AudioRenderWorker
{
public:
@@ -17,4 +39,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // AUDIOWORKER_H
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "audiorenderbackend.h"
#include <QDir>
@@ -7,6 +27,8 @@
#include "common/filefunctions.h"
#include "render/backend/indexmanager.h"
OLIVE_NAMESPACE_ENTER
AudioRenderBackend::AudioRenderBackend(QObject *parent) :
RenderBackend(parent),
ic_from_conform_(false)
@@ -220,3 +242,5 @@ bool AudioRenderBackend::ConformWaitInfo::operator==(const AudioRenderBackend::C
&& rhs.stream_time == stream_time
&& rhs.affected_range == affected_range;
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,9 +1,31 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef AUDIORENDERBACKEND_H
#define AUDIORENDERBACKEND_H
#include "common/timerange.h"
#include "renderbackend.h"
OLIVE_NAMESPACE_ENTER
class AudioRenderBackend : public RenderBackend
{
Q_OBJECT
@@ -82,4 +104,6 @@ private slots:
};
OLIVE_NAMESPACE_EXIT
#endif // AUDIORENDERBACKEND_H
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "audiorenderworker.h"
#include <QDir>
@@ -8,6 +28,8 @@
#include "config/config.h"
#include "node/block/clip/clip.h"
OLIVE_NAMESPACE_ENTER
AudioRenderWorker::AudioRenderWorker(DecoderCache* decoder_cache, QHash<Node *, Node *> *copy_map, QObject *parent) :
RenderWorker(decoder_cache, parent),
copy_map_(copy_map)
@@ -140,3 +162,5 @@ const AudioRenderingParams &AudioRenderWorker::audio_params() const
{
return audio_params_;
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,8 +1,30 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef AUDIORENDERWORKER_H
#define AUDIORENDERWORKER_H
#include "renderworker.h"
OLIVE_NAMESPACE_ENTER
class AudioRenderWorker : public RenderWorker
{
Q_OBJECT
@@ -30,4 +52,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // AUDIORENDERWORKER_H
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef COLORPROCESSORCACHE_H
#define COLORPROCESSORCACHE_H
@@ -5,6 +25,10 @@
#include "render/colorprocessor.h"
#include "rendercache.h"
OLIVE_NAMESPACE_ENTER
using ColorProcessorCache = RenderCache<QString, ColorProcessorPtr>;
OLIVE_NAMESPACE_EXIT
#endif // COLORPROCESSORCACHE_H
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef DECODERCACHE_H
#define DECODERCACHE_H
@@ -5,6 +25,8 @@
#include "project/item/footage/stream.h"
#include "rendercache.h"
OLIVE_NAMESPACE_ENTER
class DecoderCache : public RenderCache<Stream*, DecoderPtr>
{
public:
@@ -17,4 +39,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // DECODERCACHE_H
+27 -3
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "exporter.h"
#include "render/backend/audio/audiobackend.h"
@@ -5,6 +25,8 @@
#include "render/colormanager.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
Exporter::Exporter(ViewerOutput* viewer,
Encoder *encoder,
QObject* parent) :
@@ -166,7 +188,7 @@ void Exporter::EncodeFrame()
QMetaObject::invokeMethod(encoder_,
"WriteFrame",
Qt::QueuedConnection,
Q_ARG(FramePtr, frame));
OLIVE_NS_ARG(FramePtr, frame));
waiting_for_frame_ += video_params_.time_base();
@@ -216,9 +238,9 @@ void Exporter::AudioRendered()
QMetaObject::invokeMethod(encoder_,
"WriteAudio",
Qt::QueuedConnection,
Q_ARG(const AudioRenderingParams&, audio_backend_->params()),
OLIVE_NS_ARG(AudioRenderingParams, audio_backend_->params()),
Q_ARG(const QString&, cache_fn),
Q_ARG(const TimeRange&, export_range_));
OLIVE_NS_ARG(TimeRange, export_range_));
// We don't need the audio backend anymore
audio_backend_->deleteLater();
@@ -288,3 +310,5 @@ void Exporter::DebugTimerMessage()
{
qDebug() << "Still waiting for" << waiting_for_frame_.toDouble();
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef EXPORTER_H
#define EXPORTER_H
@@ -12,6 +32,8 @@
#include "render/backend/videorenderbackend.h"
#include "render/colorprocessor.h"
OLIVE_NAMESPACE_ENTER
class Exporter : public QObject
{
Q_OBJECT
@@ -101,4 +123,6 @@ private slots:
};
OLIVE_NAMESPACE_EXIT
#endif // EXPORTER_H
+25 -5
View File
@@ -1,12 +1,30 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "indexmanager.h"
#include "task/taskmanager.h"
IndexManager* IndexManager::instance_ = nullptr;
OLIVE_NAMESPACE_ENTER
IndexManager::IndexManager()
{
}
IndexManager* IndexManager::instance_ = nullptr;
void IndexManager::CreateInstance()
{
@@ -39,7 +57,7 @@ void IndexManager::StartIndexingStream(StreamPtr stream)
TaskManager::instance()->AddTask(index_task);
}
void IndexManager::StartConformingStream(AudioStreamPtr stream, const AudioRenderingParams &params)
void IndexManager::StartConformingStream(AudioStreamPtr stream, AudioRenderingParams params)
{
if (IsConforming(stream, params)) {
return;
@@ -97,3 +115,5 @@ void IndexManager::StreamConformAppendedEvent(const AudioRenderingParams &params
{
emit StreamConformAppended(static_cast<Stream*>(sender()), params);
}
OLIVE_NAMESPACE_EXIT
+28 -4
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef INDEXMANAGER_H
#define INDEXMANAGER_H
@@ -7,11 +27,13 @@
#include "task/conform/conform.h"
#include "task/index/index.h"
OLIVE_NAMESPACE_ENTER
class IndexManager : public QObject
{
Q_OBJECT
public:
IndexManager();
IndexManager() = default;
static void CreateInstance();
static IndexManager* instance();
@@ -21,12 +43,12 @@ public:
bool IsConforming(AudioStreamPtr stream, const AudioRenderingParams& params) const;
public slots:
void StartIndexingStream(StreamPtr stream);
void StartConformingStream(AudioStreamPtr stream, const AudioRenderingParams& params);
void StartIndexingStream(OLIVE_NAMESPACE::StreamPtr stream);
void StartConformingStream(OLIVE_NAMESPACE::AudioStreamPtr stream, OLIVE_NAMESPACE::AudioRenderingParams params);
signals:
void StreamIndexUpdated(Stream* stream);
void StreamConformAppended(Stream* stream, const AudioRenderingParams& params);
void StreamConformAppended(Stream* stream, OLIVE_NAMESPACE::AudioRenderingParams params);
private:
static IndexManager* instance_;
@@ -55,4 +77,6 @@ private slots:
};
OLIVE_NAMESPACE_EXIT
#endif // INDEXMANAGER_H
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "openglbackend.h"
#include <QEventLoop>
@@ -5,6 +25,8 @@
#include "openglrenderfunctions.h"
OLIVE_NAMESPACE_ENTER
OpenGLBackend::OpenGLBackend(QObject *parent) :
VideoRenderBackend(parent),
proxy_(nullptr)
@@ -83,3 +105,5 @@ void OpenGLBackend::ParamsChangedEvent()
proxy_->SetParameters(params());
}
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef OPENGLBACKEND_H
#define OPENGLBACKEND_H
@@ -8,6 +28,8 @@
#include "opengltexture.h"
#include "openglworker.h"
OLIVE_NAMESPACE_ENTER
class OpenGLBackend : public VideoRenderBackend
{
Q_OBJECT
@@ -32,4 +54,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // OPENGLBACKEND_H
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "openglcolorprocessor.h"
#include <QOpenGLContext>
@@ -5,6 +25,8 @@
#include "openglrenderfunctions.h"
OLIVE_NAMESPACE_ENTER
void OpenGLColorProcessor::Enable(QOpenGLContext *context, bool alpha_is_associated)
{
if (IsEnabled()) {
@@ -75,3 +97,5 @@ OpenGLColorProcessorPtr OpenGLColorProcessor::Create(OCIO::ConstConfigRcPtr conf
{
return std::make_shared<OpenGLColorProcessor>(config, source_space, display, view, look);
}
OLIVE_NAMESPACE_EXIT
@@ -1,9 +1,31 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef OPENGLCOLORPROCESSOR_H
#define OPENGLCOLORPROCESSOR_H
#include "openglshader.h"
#include "render/colorprocessor.h"
OLIVE_NAMESPACE_ENTER
class OpenGLColorProcessor;
using OpenGLColorProcessorPtr = std::shared_ptr<OpenGLColorProcessor>;
@@ -48,4 +70,6 @@ private slots:
};
OLIVE_NAMESPACE_EXIT
#endif // OPENGLCOLORPROCESSOR_H
@@ -23,6 +23,8 @@
#include <QDebug>
#include <QOpenGLExtraFunctions>
OLIVE_NAMESPACE_ENTER
OpenGLFramebuffer::OpenGLFramebuffer() :
context_(nullptr),
buffer_(0),
@@ -147,3 +149,5 @@ const GLuint &OpenGLFramebuffer::buffer() const
{
return buffer_;
}
OLIVE_NAMESPACE_EXIT
@@ -26,6 +26,8 @@
#include "common/constructors.h"
#include "opengltexture.h"
OLIVE_NAMESPACE_ENTER
class OpenGLFramebuffer : public QObject
{
Q_OBJECT
@@ -33,8 +35,6 @@ public:
OpenGLFramebuffer();
virtual ~OpenGLFramebuffer() override;
DISABLE_COPY_MOVE(OpenGLFramebuffer)
void Create(QOpenGLContext *ctx);
bool IsCreated() const;
@@ -61,4 +61,6 @@ private:
OpenGLTexture* texture_;
};
OLIVE_NAMESPACE_EXIT
#endif // OPENGLFRAMEBUFFER_H
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "openglproxy.h"
#include <QThread>
@@ -11,6 +31,8 @@
#include "render/colormanager.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
OpenGLProxy::OpenGLProxy(QObject *parent) :
QObject(parent),
ctx_(nullptr),
@@ -457,3 +479,5 @@ void OpenGLProxy::FinishInit()
buffer_.Create(ctx_);
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef OPENGLPROXY_H
#define OPENGLPROXY_H
@@ -9,6 +29,8 @@
#include "openglshadercache.h"
#include "opengltexturecache.h"
OLIVE_NAMESPACE_ENTER
class OpenGLProxy : public QObject {
Q_OBJECT
public:
@@ -79,4 +101,6 @@ private slots:
};
OLIVE_NAMESPACE_EXIT
#endif // OPENGLPROXY_H
@@ -24,6 +24,8 @@
#include <QOpenGLVertexArrayObject>
#include <QOpenGLBuffer>
OLIVE_NAMESPACE_ENTER
const GLfloat blit_vertices[] = {
-1.0f, -1.0f, 0.0f,
1.0f, -1.0f, 0.0f,
@@ -216,3 +218,5 @@ void OpenGLRenderFunctions::OCIOBlit(OpenGLShader *pipeline,
xf->glBindTexture(GL_TEXTURE_3D, 0);
xf->glActiveTexture(GL_TEXTURE0);
}
OLIVE_NAMESPACE_EXIT
@@ -28,6 +28,8 @@
#include "openglshader.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
class OpenGLRenderFunctions {
public:
/**
@@ -61,4 +63,6 @@ public:
};
OLIVE_NAMESPACE_EXIT
#endif // OPENGLFUNCTIONS_H
+23 -5
View File
@@ -1,11 +1,27 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "openglshader.h"
#include <QOpenGLExtraFunctions>
OpenGLShader::OpenGLShader()
{
}
OLIVE_NAMESPACE_ENTER
OpenGLShaderPtr OpenGLShader::Create()
{
@@ -235,3 +251,5 @@ QString OpenGLShader::CodeAlphaAssociate(const QString &function_name)
" return vec4(col.rgb * col.a, col.a);\n"
"}\n").arg(function_name);
}
OLIVE_NAMESPACE_EXIT
+27 -1
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef OPENGLSHADER_H
#define OPENGLSHADER_H
@@ -7,6 +27,10 @@
#include <OpenColorIO/OpenColorIO.h>
namespace OCIO = OCIO_NAMESPACE::v1;
#include "common/define.h"
OLIVE_NAMESPACE_ENTER
class OpenGLShader;
using OpenGLShaderPtr = std::shared_ptr<OpenGLShader>;
@@ -15,7 +39,7 @@ using OpenGLShaderPtr = std::shared_ptr<OpenGLShader>;
*/
class OpenGLShader : public QOpenGLShaderProgram {
public:
OpenGLShader();
OpenGLShader() = default;
static OpenGLShaderPtr Create();
@@ -36,4 +60,6 @@ public:
};
OLIVE_NAMESPACE_EXIT
#endif // OPENGLSHADER_H
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef OPENGLSHADERCACHE_H
#define OPENGLSHADERCACHE_H
@@ -6,6 +26,10 @@
#include "openglshader.h"
#include "render/backend/rendercache.h"
OLIVE_NAMESPACE_ENTER
using OpenGLShaderCache = RenderCache<QString, OpenGLShaderPtr>;
OLIVE_NAMESPACE_EXIT
#endif // OPENGLSHADERCACHE_H
@@ -26,6 +26,8 @@
#include "openglrenderfunctions.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
OpenGLTexture::OpenGLTexture() :
created_ctx_(nullptr),
texture_(0),
@@ -168,3 +170,5 @@ void OpenGLTexture::CreateInternal(QOpenGLContext* create_ctx, GLuint* tex, cons
// Release texture
f->glBindTexture(GL_TEXTURE_2D, 0);
}
OLIVE_NAMESPACE_EXIT
+6 -1
View File
@@ -28,6 +28,8 @@
#include "common/constructors.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
/**
* @brief A class wrapper around an OpenGL texture
*/
@@ -78,6 +80,9 @@ private:
};
using OpenGLTexturePtr = std::shared_ptr<OpenGLTexture>;
Q_DECLARE_METATYPE(OpenGLTexturePtr)
OLIVE_NAMESPACE_EXIT
Q_DECLARE_METATYPE(OLIVE_NAMESPACE::OpenGLTexturePtr)
#endif // OPENGLTEXTURE_H
@@ -1,5 +1,27 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "opengltexturecache.h"
OLIVE_NAMESPACE_ENTER
OpenGLTextureCache::~OpenGLTextureCache()
{
foreach (Reference* ref, existing_references_) {
@@ -78,3 +100,5 @@ void OpenGLTextureCache::Reference::ParentKilled()
{
parent_ = nullptr;
}
OLIVE_NAMESPACE_EXIT
+25 -1
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef OPENGLTEXTURECACHE_H
#define OPENGLTEXTURECACHE_H
@@ -7,6 +27,8 @@
#include "opengltexture.h"
#include "render/videoparams.h"
OLIVE_NAMESPACE_ENTER
class OpenGLTextureCache
{
public:
@@ -48,6 +70,8 @@ private:
};
Q_DECLARE_METATYPE(OpenGLTextureCache::ReferencePtr)
OLIVE_NAMESPACE_EXIT
Q_DECLARE_METATYPE(OLIVE_NAMESPACE::OpenGLTextureCache::ReferencePtr)
#endif // OPENGLTEXTURECACHE_H
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "openglworker.h"
#include "common/clamp.h"
@@ -9,6 +29,8 @@
#include "render/colormanager.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
OpenGLWorker::OpenGLWorker(VideoRenderFrameCache *frame_cache, DecoderCache* decoder_cache, QObject *parent) :
VideoRenderWorker(frame_cache, decoder_cache, parent)
{
@@ -28,3 +50,5 @@ void OpenGLWorker::TextureToBuffer(const QVariant &tex_in, void *buffer)
{
emit RequestTextureToBuffer(tex_in, buffer);
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef OPENGLPROCESSOR_H
#define OPENGLPROCESSOR_H
@@ -9,6 +29,8 @@
#include "openglshadercache.h"
#include "opengltexturecache.h"
OLIVE_NAMESPACE_ENTER
class OpenGLWorker : public VideoRenderWorker {
Q_OBJECT
public:
@@ -31,4 +53,6 @@ protected:
};
OLIVE_NAMESPACE_EXIT
#endif // OPENGLPROCESSOR_H
+25 -1
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "renderbackend.h"
#include <QDateTime>
@@ -7,6 +27,8 @@
#include "render/backend/indexmanager.h"
#include "window/mainwindow/mainwindow.h"
OLIVE_NAMESPACE_ENTER
RenderBackend::RenderBackend(QObject *parent) :
QObject(parent),
compiled_(false),
@@ -308,7 +330,7 @@ void RenderBackend::CacheNext()
QMetaObject::invokeMethod(worker,
"Render",
Qt::QueuedConnection,
Q_ARG(NodeDependency, dep),
OLIVE_NS_ARG(NodeDependency, dep),
Q_ARG(qint64, job_time));
}
}
@@ -528,3 +550,5 @@ bool RenderBackend::FootageWaitInfo::operator==(const RenderBackend::FootageWait
&& rhs.stream_time == stream_time
&& rhs.affected_range == affected_range;
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef RENDERBACKEND_H
#define RENDERBACKEND_H
@@ -10,6 +30,8 @@
#include "node/output/viewer/viewer.h"
#include "renderworker.h"
OLIVE_NAMESPACE_ENTER
class RenderBackend : public QObject
{
Q_OBJECT
@@ -167,4 +189,6 @@ private slots:
};
OLIVE_NAMESPACE_EXIT
#endif // RENDERBACKEND_H
+24
View File
@@ -1,9 +1,31 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef RENDERCACHE_H
#define RENDERCACHE_H
#include <QMap>
#include <QMutex>
OLIVE_NAMESPACE_ENTER
template<class K, class V>
class RenderCache
{
@@ -25,4 +47,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // RENDERCACHE_H
+24
View File
@@ -1,9 +1,31 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "renderworker.h"
#include <QThread>
#include "node/block/block.h"
OLIVE_NAMESPACE_ENTER
RenderWorker::RenderWorker(DecoderCache *decoder_cache, QObject *parent) :
QObject(parent),
started_(false),
@@ -125,3 +147,5 @@ const NodeDependency &RenderWorker::CurrentPath() const
{
return path_;
}
OLIVE_NAMESPACE_EXIT
+27 -3
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef RENDERWORKER_H
#define RENDERWORKER_H
@@ -9,6 +29,8 @@
#include "node/output/track/track.h"
#include "node/traverser.h"
OLIVE_NAMESPACE_ENTER
class RenderWorker : public QObject, public NodeTraverser
{
Q_OBJECT
@@ -22,12 +44,12 @@ public:
public slots:
void Close();
void Render(NodeDependency CurrentPath, qint64 job_time);
void Render(OLIVE_NAMESPACE::NodeDependency path, qint64 job_time);
signals:
void CompletedCache(NodeDependency dep, NodeValueTable data, qint64 job_time);
void CompletedCache(OLIVE_NAMESPACE::NodeDependency dep, OLIVE_NAMESPACE::NodeValueTable data, qint64 job_time);
void FootageUnavailable(StreamPtr stream, Decoder::RetrieveState state, const TimeRange& range, const rational& stream_time);
void FootageUnavailable(OLIVE_NAMESPACE::StreamPtr stream, OLIVE_NAMESPACE::Decoder::RetrieveState state, const OLIVE_NAMESPACE::TimeRange& range, const OLIVE_NAMESPACE::rational& stream_time);
protected:
virtual bool InitInternal() = 0;
@@ -61,4 +83,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // RENDERWORKER_H
@@ -34,6 +34,8 @@
#include "render/pixelformat.h"
#include "videorenderworker.h"
OLIVE_NAMESPACE_ENTER
VideoRenderBackend::VideoRenderBackend(QObject *parent) :
RenderBackend(parent),
operating_mode_(VideoRenderWorker::kHashRenderCache),
@@ -382,3 +384,5 @@ void VideoRenderBackend::Requeue()
CacheNext();
}
OLIVE_NAMESPACE_EXIT
+4
View File
@@ -31,6 +31,8 @@
#include "videorenderframecache.h"
#include "videorenderworker.h"
OLIVE_NAMESPACE_ENTER
/**
* @brief A multithreaded OpenGL based renderer for node systems
*/
@@ -139,4 +141,6 @@ private slots:
};
OLIVE_NAMESPACE_EXIT
#endif // VIDEORENDERERBACKEND_H
+23 -4
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "videorenderframecache.h"
#include <QDir>
@@ -5,10 +25,7 @@
#include "common/filefunctions.h"
VideoRenderFrameCache::VideoRenderFrameCache()
{
}
OLIVE_NAMESPACE_ENTER
void VideoRenderFrameCache::Clear()
{
@@ -142,3 +159,5 @@ QString VideoRenderFrameCache::CachePathName(const QByteArray& hash, const Pixel
return cache_dir.filePath(filename);
}
OLIVE_NAMESPACE_EXIT
+25 -1
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef VIDEORENDERFRAMECACHE_H
#define VIDEORENDERFRAMECACHE_H
@@ -6,10 +26,12 @@
#include "common/rational.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
class VideoRenderFrameCache
{
public:
VideoRenderFrameCache();
VideoRenderFrameCache() = default;
void Clear();
@@ -64,4 +86,6 @@ private:
QString cache_id_;
};
OLIVE_NAMESPACE_EXIT
#endif // VIDEORENDERFRAMECACHE_H
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "videorenderworker.h"
#include <OpenEXR/ImfFloatAttribute.h>
@@ -12,6 +32,8 @@
#include "project/project.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
VideoRenderWorker::VideoRenderWorker(VideoRenderFrameCache *frame_cache, DecoderCache* decoder_cache, QObject *parent) :
RenderWorker(decoder_cache, parent),
frame_cache_(frame_cache),
@@ -358,3 +380,5 @@ ColorProcessorCache *VideoRenderWorker::color_cache()
{
return &color_cache_;
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef VIDEORENDERWORKER_H
#define VIDEORENDERWORKER_H
@@ -9,6 +29,8 @@
#include "renderworker.h"
#include "videorenderframecache.h"
OLIVE_NAMESPACE_ENTER
class VideoRenderWorker : public RenderWorker {
Q_OBJECT
public:
@@ -98,4 +120,6 @@ private slots:
};
OLIVE_NAMESPACE_EXIT
#endif // VIDEORENDERWORKER_H
+25 -1
View File
@@ -1,5 +1,27 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "color.h"
OLIVE_NAMESPACE_ENTER
Color Color::fromHsv(const float &h, const float &s, const float &v)
{
float C = s * v;
@@ -182,7 +204,9 @@ QColor Color::toQColor() const
return c;
}
QDebug operator<<(QDebug debug, const Color &r)
OLIVE_NAMESPACE_EXIT
QDebug operator<<(QDebug debug, const OLIVE_NAMESPACE::Color &r)
{
debug.nospace() << "[R: " << r.red() << ", G: " << r.green() << ", B: " << r.blue() << ", A: " << r.alpha() << "]";
return debug.space();
+26 -2
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef COLOR_H
#define COLOR_H
@@ -7,6 +27,8 @@
#include "common/define.h"
#include "render/pixelformat.h"
OLIVE_NAMESPACE_ENTER
/**
* @brief High precision 32-bit float based RGBA color value
*/
@@ -69,8 +91,10 @@ private:
};
QDebug operator<<(QDebug debug, const Color& r);
OLIVE_NAMESPACE_EXIT
Q_DECLARE_METATYPE(Color)
QDebug operator<<(QDebug debug, const OLIVE_NAMESPACE::Color& r);
Q_DECLARE_METATYPE(OLIVE_NAMESPACE::Color)
#endif // COLOR_H
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "colormanager.h"
#include <QFloat16>
@@ -6,6 +26,8 @@
#include "config/config.h"
#include "core.h"
OLIVE_NAMESPACE_ENTER
ColorManager::ColorManager()
{
// Ensures config is set to something
@@ -196,3 +218,5 @@ void ColorManager::AssociateAlphaInternal(ColorManager::AlphaAction action, T *d
}
}
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef COLORSERVICE_H
#define COLORSERVICE_H
@@ -6,6 +26,8 @@
#include "codec/frame.h"
#include "colorprocessor.h"
OLIVE_NAMESPACE_ENTER
class ColorManager : public QObject
{
Q_OBJECT
@@ -78,4 +100,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // COLORSERVICE_H
+24
View File
@@ -1,7 +1,29 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "colorprocessor.h"
#include "common/define.h"
OLIVE_NAMESPACE_ENTER
ColorProcessor::ColorProcessor(OCIO::ConstConfigRcPtr config, const QString& source_space, const QString& dest_space)
{
processor = config->getProcessor(source_space.toUtf8(),
@@ -63,3 +85,5 @@ OpenColorIO::v1::ConstProcessorRcPtr ColorProcessor::GetProcessor()
{
return processor;
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef COLORPROCESSOR_H
#define COLORPROCESSOR_H
@@ -8,6 +28,8 @@ namespace OCIO = OCIO_NAMESPACE::v1;
#include "common/constructors.h"
#include "render/color.h"
OLIVE_NAMESPACE_ENTER
class ColorProcessor;
using ColorProcessorPtr = std::shared_ptr<ColorProcessor>;
@@ -42,4 +64,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // COLORPROCESSOR_H
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "diskmanager.h"
#include <QDataStream>
@@ -10,6 +30,8 @@
#include "common/filefunctions.h"
#include "config/config.h"
OLIVE_NAMESPACE_ENTER
DiskManager* DiskManager::instance_ = nullptr;
DiskManager::DiskManager() :
@@ -200,3 +222,5 @@ QString DiskManager::GetCacheIndexFilename()
d.mkpath(".");
return d.filePath("diskindex");
}
OLIVE_NAMESPACE_EXIT
+26
View File
@@ -1,9 +1,33 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef DISKMANAGER_H
#define DISKMANAGER_H
#include <QMutex>
#include <QObject>
#include "common/define.h"
OLIVE_NAMESPACE_ENTER
class DiskManager : public QObject
{
Q_OBJECT
@@ -53,4 +77,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // DISKMANAGER_H
+3
View File
@@ -28,6 +28,8 @@
#include "common/define.h"
#include "core.h"
OLIVE_NAMESPACE_ENTER
bool PixelFormat::FormatHasAlphaChannel(const PixelFormat::Format &format)
{
switch (format) {
@@ -230,3 +232,4 @@ FramePtr PixelFormat::ConvertPixelFormat(FramePtr frame, const PixelFormat::Form
}
}
OLIVE_NAMESPACE_EXIT
+4
View File
@@ -28,6 +28,8 @@
#include "render/rendermodes.h"
OLIVE_NAMESPACE_ENTER
class Frame;
using FramePtr = std::shared_ptr<Frame>;
@@ -139,4 +141,6 @@ private:
};
OLIVE_NAMESPACE_EXIT
#endif // BITDEPTHS_H
+26
View File
@@ -1,6 +1,30 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef RENDERMODE_H
#define RENDERMODE_H
#include "common/define.h"
OLIVE_NAMESPACE_ENTER
class RenderMode {
public:
/**
@@ -21,4 +45,6 @@ public:
};
};
OLIVE_NAMESPACE_EXIT
#endif // RENDERMODE_H
+24
View File
@@ -1,5 +1,27 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#include "videoparams.h"
OLIVE_NAMESPACE_ENTER
VideoParams::VideoParams() :
width_(0),
height_(0)
@@ -118,3 +140,5 @@ bool VideoRenderingParams::is_valid() const
&& format_ != PixelFormat::PIX_FMT_INVALID
&& format_ != PixelFormat::PIX_FMT_COUNT);
}
OLIVE_NAMESPACE_EXIT
+24
View File
@@ -1,3 +1,23 @@
/***
Olive - Non-Linear Video Editor
Copyright (C) 2019 Olive Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
***/
#ifndef VIDEOPARAMS_H
#define VIDEOPARAMS_H
@@ -5,6 +25,8 @@
#include "pixelformat.h"
#include "rendermodes.h"
OLIVE_NAMESPACE_ENTER
class VideoParams
{
public:
@@ -51,4 +73,6 @@ private:
int effective_height_;
};
OLIVE_NAMESPACE_EXIT
#endif // VIDEOPARAMS_H