Commit a620dfa1 authored by Vincent Pinon's avatar Vincent Pinon
Browse files

Merge branch 'Applications/18.08'

parents 4ce87b54 27c64c00
......@@ -266,6 +266,7 @@
<caption xml:lang="ca-valencia">Kdenlive 18.08</caption>
<caption xml:lang="de">Kdenlive 18.08</caption>
<caption xml:lang="en-GB">Kdenlive 18.08</caption>
<caption xml:lang="es">Kdenlive 18.08</caption>
<caption xml:lang="fr">Kdenlive 18.08</caption>
<caption xml:lang="gl">Kdenlive 18.08</caption>
<caption xml:lang="it">Kdenlive 18.08</caption>
......
......@@ -89,11 +89,11 @@ function configure_make {
if pacman -Suy ; then
# MSYS tools
pacman -Sy --needed git automake1.16
pacman -Sy --needed tar git automake1.16
# MINGW packages
TOOLS="make cmake ninja pkg-config libtool" # ruby
DEPS="gcc drmingw gavl opencv dlfcn SDL2 exiv2 libexif vid.stab ffmpeg gtk2 qt5 fftw ladspa-sdk eigen3 extra-cmake-modules"
KF5=(karchive kconfig kcoreaddons kdbusaddons kguiaddons \
KF5=(breeze-icons karchive kconfig kcoreaddons kdbusaddons kguiaddons \
ki18n kitemviews kwidgetsaddons kcompletion kwindowsystem \
kcrash kjobwidgets kauth kcodecs kconfigwidgets kiconthemes \
solid sonnet attica kservice kglobalaccel ktextwidgets \
......@@ -121,7 +121,10 @@ for FRAMEWORK in knotifyconfig purpose ; do
#-DECM_MKSPECS_INSTALL_DIR=$MINGW_PREFIX/share/qt5/mkspecs/modules \
#-DECM_DIR=$MINGW_PREFIX/share/ECM \
done
mkdir -p $MINGW_PREFIX/bin/data/color-schemes
cd $MINGW_PREFIX/bin/data/color-schemes
wget https://cgit.kde.org/breeze.git/plain/colors/{Breeze,BreezeDark,BreezeHighContrast,BreezeLight}.colors
wget https://cgit.kde.org/plasma-desktop.git/plain/kcms/colors/schemes/{Honeycomb,Norway,ObsidianCoast,Oxygen,OxygenCold,Steel,WontonSoup,Zion,ZionReversed}.colors
#### BUILD MULTIMEDIA DEPS
if false ; then # Still Failing
......
......@@ -49,6 +49,9 @@
int main(int argc, char *argv[])
{
#ifdef USE_DRMINGW
ExcHndlInit();
#endif
// Force QDomDocument to use a deterministic XML attribute order
#if (QT_VERSION >= QT_VERSION_CHECK(5, 6, 0))
qSetGlobalQHashSeed(0);
......@@ -66,6 +69,10 @@ int main(int argc, char *argv[])
QCoreApplication::setAttribute(Qt::AA_X11InitThreads);
#endif
#ifdef KF5_USE_CRASH
KCrash::initialize();
#endif
#ifdef Q_OS_WIN
qputenv("KDE_FORK_SLAVES", "1");
#endif
......@@ -151,12 +158,6 @@ int main(int argc, char *argv[])
parser.process(app);
aboutData.processCommandLine(&parser);
#ifdef USE_DRMINGW
ExcHndlInit();
#elif defined(KF5_USE_CRASH)
KCrash::initialize();
#endif
QString clipsToLoad = parser.value(QStringLiteral("i"));
QString mltPath = parser.value(QStringLiteral("mlt-path"));
if (parser.value(QStringLiteral("mlt-log")) == QStringLiteral("verbose")) {
......
......@@ -32,14 +32,6 @@
#include "kdenlivesettings.h"
#include "mltcontroller/bincontroller.h"
#ifndef GL_UNPACK_ROW_LENGTH
# ifdef GL_UNPACK_ROW_LENGTH_EXT
# define GL_UNPACK_ROW_LENGTH GL_UNPACK_ROW_LENGTH_EXT
# else
# error GL_UNPACK_ROW_LENGTH undefined
# endif
#endif
#ifdef QT_NO_DEBUG
#define check_error(fn) {}
#else
......@@ -58,7 +50,7 @@ static ClientWaitSync_fp ClientWaitSync = nullptr;
using namespace Mlt;
GLWidget::GLWidget(int id, QObject *parent)
: QQuickView((QWindow *) parent)
: QQuickView((QWindow*) parent)
, sendFrameForAnalysis(false)
, m_id(id)
, m_shader(nullptr)
......@@ -324,6 +316,9 @@ static void uploadTextures(QOpenGLContext *context, const SharedFrame &frame, GL
const uint8_t *image = frame.get_image();
QOpenGLFunctions *f = context->functions();
// The planes of pixel data may not be a multiple of the default 4 bytes.
f->glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
// Upload each plane of YUV to a texture.
if (texture[0]) {
f->glDeleteTextures(3, texture);
......@@ -395,14 +390,14 @@ void GLWidget::paintGL()
int width = this->width() * devicePixelRatio();
int height = this->height() * devicePixelRatio();
f->glDisable(GL_BLEND);
f->glDisable(GL_DEPTH_TEST);
f->glDepthMask(GL_FALSE);
f->glViewport(0, 0, width, height);
glDisable(GL_BLEND);
glDisable(GL_DEPTH_TEST);
glDepthMask(GL_FALSE);
glViewport(0, 0, width, height);
check_error(f);
QColor color(KdenliveSettings::window_background());
f->glClearColor(color.redF(), color.greenF(), color.blueF(), color.alphaF());
f->glClear(GL_COLOR_BUFFER_BIT);
glClearColor(color.redF(), color.greenF(), color.blueF(), color.alphaF());
glClear(GL_COLOR_BUFFER_BIT);
check_error(f);
if (!(m_glslManager || openglContext()->supportsThreadedOpenGL())) {
......@@ -418,8 +413,8 @@ void GLWidget::paintGL()
// Bind textures.
for (int i = 0; i < 3; ++i) {
if (m_texture[i]) {
f->glActiveTexture(GL_TEXTURE0 + i);
f->glBindTexture(GL_TEXTURE_2D, m_texture[i]);
glActiveTexture(GL_TEXTURE0 + i);
glBindTexture(GL_TEXTURE_2D, m_texture[i]);
check_error(f);
}
}
......@@ -477,7 +472,7 @@ void GLWidget::paintGL()
check_error(f);
// Render
f->glDrawArrays(GL_TRIANGLE_STRIP, 0, vertices.size());
glDrawArrays(GL_TRIANGLE_STRIP, 0, vertices.size());
check_error(f);
if (m_sendFrame && m_analyseSem.tryAcquire(1)) {
......@@ -492,13 +487,13 @@ void GLWidget::paintGL()
m_fbo = new QOpenGLFramebufferObject(fullWidth, fullHeight, fmt); //GL_TEXTURE_2D);
}
m_fbo->bind();
f->glViewport(0, 0, fullWidth, fullHeight);
glViewport(0, 0, fullWidth, fullHeight);
QMatrix4x4 projection2;
projection2.scale(2.0f / width, 2.0f / height);
m_shader->setUniformValue(m_projectionLocation, projection2);
f->glDrawArrays(GL_TRIANGLE_STRIP, 0, vertices.size());
glDrawArrays(GL_TRIANGLE_STRIP, 0, vertices.size());
check_error(f);
m_fbo->release();
emit analyseFrame(m_fbo->toImage());
......@@ -510,12 +505,12 @@ void GLWidget::paintGL()
m_shader->release();
for (int i = 0; i < 3; ++i) {
if (m_texture[i]) {
f->glActiveTexture(GL_TEXTURE0 + i);
f->glBindTexture(GL_TEXTURE_2D, 0);
glActiveTexture(GL_TEXTURE0 + i);
glBindTexture(GL_TEXTURE_2D, 0);
check_error(f);
}
}
f->glActiveTexture(GL_TEXTURE0);
glActiveTexture(GL_TEXTURE0);
check_error(f);
}
......@@ -893,11 +888,6 @@ int GLWidget::reconfigureMulti(const QString &params, const QString &path, Mlt::
m_consumer->set("0.volume", (double)volume / 100);
if (serviceName.startsWith(QLatin1String("sdl"))) {
#ifdef Q_OS_WIN
m_consumer->set("0.audio_buffer", 2048);
#else
m_consumer->set("0.audio_buffer", 512);
#endif
QString audioDevice = KdenliveSettings::audiodevicename();
if (!audioDevice.isEmpty()) {
m_consumer->set("audio_device", audioDevice.toUtf8().constData());
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment