Merge branch 'master' of https://github.com/olive-editor/olive into otio

This commit is contained in:
itsmattkc
2020-09-25 16:32:22 +10:00
19 changed files with 168 additions and 105 deletions
@@ -1,11 +1,14 @@
---
name: Legacy Olive 0.1.x issue ⛔
about: Olive 0.1 is no longer supported and issues made about it will be automatically closed.
title: "[UNSUPPORTED]"
labels: "Legacy (Unsupported)"
about: >-
Olive 0.1 is no longer supported and issues made about it will be
automatically closed.
title: '[UNSUPPORTED] '
labels: 'Legacy (Unsupported)'
assignees: ''
---
# Olive 0.1 is unsupported
Unfortunately no one is supporting Olive 0.1 at this time. Any reports pertaining to it will be
closed to keep the issue tracker focused on supported versions.
Unfortunately no one is supporting Olive 0.1 at this time. Any reports
pertaining to it will be closed to keep the issue tracker focused on supported
versions.
+2 -2
View File
@@ -1,8 +1,8 @@
---
name: Crash
about: Report a fatal crash that resulted in Olive unexpectedly closing.
title: "[CRASH]"
labels: "Crash, Triage"
title: '[CRASH] '
labels: 'Crash, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+6 -3
View File
@@ -1,8 +1,11 @@
---
name: Build/Packaging
about: Report an issue related to compiling or packaging (including continuous integration). Note that we do not officially support custom build configurations and may choose not to address issues involving them.
title: "[BUILD]"
labels: "Building/Packaging, Triage"
about: >-
Report an issue related to compiling or packaging (including continuous
integration). Note that we do not officially support custom build
configurations and may not address issues involving them.
title: '[BUILD] '
labels: 'Building/Packaging, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+6 -3
View File
@@ -1,8 +1,11 @@
---
name: Disk Cache
about: Report an issue related to the disk cache system, including failure to cache, frames being set to appear at the wrong time, disk space or memory usage issues, etc.
title: "[CACHE]"
labels: "Disk Cache, Triage"
about: >-
Report an issue related to the disk cache system, including failure to cache,
frames being set to appear at the wrong time, disk space or memory usage
issues, etc.
title: '[CACHE] '
labels: 'Disk Cache, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: Codec
about: Report an issue related to codec handling, including importing footage or any footage usage issues while editing.
title: "[CODEC]"
labels: "Codec, Triage"
about: >-
Report an issue related to codec handling, including importing footage or any
footage usage issues while editing.
title: '[CODEC] '
labels: 'Codec, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: Color Management
about: Report an issue related to the management of pixels and color, including inaccurate results, color inconsistencies, etc.
title: "[COLOR]"
labels: "Color Management, Triage"
about: >-
Report an issue related to the management of pixels and color, including
inaccurate results, color inconsistencies, etc.
title: '[COLOR] '
labels: 'Color Management, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: Timeline/Editing
about: Report an issue related to the overall editing experience, including usage of the timeline, interchange, synchronization, multi-camera support, etc.
title: "[EDIT]"
labels: "Timeline/Editing, Triage"
about: >-
Report an issue related to the overall editing experience, including usage of
the timeline, interchange, synchronization, multi-camera support, etc.
title: '[EDIT] '
labels: 'Timeline/Editing, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: Export
about: Report an issue related to exporting videos from Olive, including errors while exporting, issues with the resulting video, etc.
title: "[EXPORT]"
labels: "Export, Triage"
about: >-
Report an issue related to exporting videos from Olive, including errors
while exporting, issues with the resulting video, etc.
title: '[EXPORT] '
labels: 'Export, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: Node/Compositing
about: Report an issue related to the node-based compositing system, including node graph usability issues, issues working with node effects, issues with composited output, etc.
title: "[NODES]"
labels: "Nodes/Compositing, Triage"
about: >-
Report an issue related to the node-based compositing system, including node graph
usability issues, issues working with node effects, issues with composited output, etc.
title: '[NODES] '
labels: 'Nodes/Compositing, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: Playback
about: Report an issue related to the playback of video or audio, including laggy or inconsistent playback, failure to playback, etc.
title: "[PLAYBACK]"
labels: "Playback, Triage"
about: >-
Report an issue related to the playback of video or audio, including laggy or
inconsistent playback, failure to playback, etc.
title: '[PLAYBACK] '
labels: 'Playback, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: Project Management
about: Report an issue related to project management, including working with and organizing imported files.
title: "[PROJECT]"
labels: "Project, Triage"
about: >-
Report an issue related to project management, including working with and
organizing imported files.
title: '[PROJECT] '
labels: 'Project, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: Renderer
about: Report an issue related to rendering, including corrupted frames, incorrect render results, unexpected black or white frames, etc.
title: "[RENDER]"
labels: "Renderer, Triage"
about: >-
Report an issue related to rendering, including corrupted frames, incorrect
render results, unexpected black or white frames, etc.
title: '[RENDER] '
labels: 'Renderer, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+5 -3
View File
@@ -1,8 +1,10 @@
---
name: User Interface
about: Report an issue related to general user interface usability, including behavior issues, usability issues, look and feel, etc.
title: "[UI]"
labels: "User Interface, Triage"
about: >-
Report an issue related to general user interface usability, including
behavior issues, usability issues, look and feel, etc.
title: '[UI] '
labels: 'User Interface, Triage'
assignees: ''
---
**Commit Hash** <!-- 8 character string of letters/numbers in title bar (e.g. 3ea173c9) -->
+20 -14
View File
@@ -4,6 +4,12 @@ on:
push:
branches:
- master
paths-ignore:
- '.github/ISSUE_TEMPLATE/**'
- '.github/FUNDING.yml'
- 'docker/**'
- 'CONTRIBUTING.md'
- 'README.md'
env:
DOWNLOAD_TOOL: curl -fLOSs --retry 3
@@ -105,7 +111,7 @@ jobs:
-F hash="$GITHUB_SHA" \
-F time="$(git show -s --format=%ct)" \
-F comment="$(git show -s --format=%B)" \
https://olivevideoeditor.org/dl/push.php
https://ci.olivevideoeditor.org/push.php
windows:
strategy:
@@ -155,31 +161,31 @@ jobs:
- name: Acquire FFmpeg
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/ffmpeg-win.7z
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ffmpeg-win.7z
$EXTRACT_TOOL ffmpeg-win.7z
- name: Acquire OpenColorIO
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/ocio-win.7z
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ocio-win.7z
$EXTRACT_TOOL ocio-win.7z
- name: Acquire OpenEXR
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/openexr-win.7z
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/openexr-win.7z
$EXTRACT_TOOL openexr-win.7z
- name: Acquire OpenImageIO
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/oiio-win.7z
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/oiio-win.7z
$EXTRACT_TOOL oiio-win.7z
- name: Acquire Crashpad
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/crashpad-win.7z
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/crashpad-win.7z
$EXTRACT_TOOL crashpad-win.7z
- name: Configure CMake
@@ -254,7 +260,7 @@ jobs:
-F hash="$GITHUB_SHA" \
-F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \
-F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \
https://olivevideoeditor.org/dl/push.php
https://ci.olivevideoeditor.org/push.php
curl -X POST \
-F file=@$PKGNAME.zip \
@@ -262,7 +268,7 @@ jobs:
-F hash="$GITHUB_SHA" \
-F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \
-F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \
https://olivevideoeditor.org/dl/push.php
https://ci.olivevideoeditor.org/push.php
- name: Export Crashpad Symbols and Upload To Server
working-directory: ${{ runner.workspace }}/build
@@ -322,31 +328,31 @@ jobs:
- name: Acquire FFmpeg
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/ffmpeg-mac.zip
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ffmpeg-mac.zip
$EXTRACT_TOOL ffmpeg-mac.zip
- name: Acquire OpenColorIO
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/ocio-mac.zip
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/ocio-mac.zip
$EXTRACT_TOOL ocio-mac.zip
- name: Acquire OpenEXR
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/openexr-mac.zip
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/openexr-mac.zip
$EXTRACT_TOOL openexr-mac.zip
- name: Acquire OpenImageIO
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/oiio-mac.zip
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/oiio-mac.zip
$EXTRACT_TOOL oiio-mac.zip
- name: Acquire Crashpad
shell: bash
run: |
$DOWNLOAD_TOOL http://olivevideoeditor.org/deps/crashpad-mac.zip
$DOWNLOAD_TOOL https://olivevideoeditor.org/deps/crashpad-mac.zip
$EXTRACT_TOOL crashpad-mac.zip
- name: Configure CMake
@@ -407,4 +413,4 @@ jobs:
-F hash="$GITHUB_SHA" \
-F time="$(git -C $GITHUB_WORKSPACE show -s --format=%ct)" \
-F comment="$(git -C $GITHUB_WORKSPACE show -s --format=%B)" \
https://olivevideoeditor.org/dl/push.php
https://ci.olivevideoeditor.org/push.php
+1 -9
View File
@@ -84,20 +84,12 @@ endif()
if(EXISTS "${CMAKE_SOURCE_DIR}/.git")
find_package(Git)
if(GIT_FOUND)
execute_process(COMMAND ${GIT_EXECUTABLE} log -1 --format=%h
execute_process(COMMAND ${GIT_EXECUTABLE} rev-parse --short=8 HEAD
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
OUTPUT_VARIABLE GIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
elseif(UNIX AND NOT APPLE AND NOT ${CMAKE_SYSTEM_NAME} MATCHES "OpenBSD")
# Fallback for Ubuntu/Launchpad (extracts Git hash from debian/changelog rather than Git repo)
# (see https://answers.launchpad.net/launchpad/+question/678556)
execute_process(COMMAND sh -c "grep -Po '(?<=-)(([a-z0-9])\\w+)(?=\\+)' -m 1 changelog"
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/debian
OUTPUT_VARIABLE GIT_HASH
OUTPUT_STRIP_TRAILING_WHITESPACE
)
endif()
if(DEFINED GIT_HASH)
message("Olive: Git hash = " "${GIT_HASH}")
+40 -27
View File
@@ -71,49 +71,62 @@ bool LinuxExceptionHandler(int, siginfo_t*, ucontext_t*)
bool InitializeCrashpad()
{
QString exe_dir = QCoreApplication::applicationDirPath();
QString handler_fn;
// Determine filename of handler from platform
#ifdef OS_WIN
base::FilePath handler(QSTRING_TO_BASE_STRING(QDir(exe_dir).filePath(QStringLiteral("crashpad_handler.exe"))));
handler_fn = QStringLiteral("crashpad_handler.exe");
#else
// FIXME: On Linux, probably should put this in a subdir so that it doesn't conflict with
// anything else in /usr/bin
base::FilePath handler(QSTRING_TO_BASE_STRING(QDir(exe_dir).filePath(QStringLiteral("crashpad_handler"))));
handler_fn = QStringLiteral("crashpad_handler");
#endif
base::FilePath reports_dir = GenerateReportPathForCrashpad();
// Generate absolute path
QString handler_abs_path = QDir(QCoreApplication::applicationDirPath()).filePath(handler_fn);
base::FilePath metrics_dir(QSTRING_TO_BASE_STRING(QDir(OLIVE_NAMESPACE::FileFunctions::GetTempFilePath()).filePath(QStringLiteral("metrics"))));
bool status = false;
// Metadata that will be posted to the server with the crash report map
std::map<std::string, std::string> annotations;
if (QFileInfo::exists(handler_abs_path)) {
base::FilePath handler(QSTRING_TO_BASE_STRING(handler_fn));
// Disable crashpad rate limiting so that all crashes have dmp files
std::vector<std::string> arguments;
arguments.push_back("--no-rate-limit");
arguments.push_back("--no-upload-gzip");
base::FilePath reports_dir = GenerateReportPathForCrashpad();
// Initialize Crashpad database
std::unique_ptr<crashpad::CrashReportDatabase> database = crashpad::CrashReportDatabase::Initialize(reports_dir);
if (database == NULL) return false;
base::FilePath metrics_dir(QSTRING_TO_BASE_STRING(QDir(OLIVE_NAMESPACE::FileFunctions::GetTempFilePath()).filePath(QStringLiteral("metrics"))));
// Disable automated crash uploads
crashpad::Settings *settings = database->GetSettings();
if (settings == NULL) return false;
settings->SetUploadsEnabled(false);
// Metadata that will be posted to the server with the crash report map
std::map<std::string, std::string> annotations;
// Disable crashpad rate limiting so that all crashes have dmp files
std::vector<std::string> arguments;
arguments.push_back("--no-rate-limit");
arguments.push_back("--no-upload-gzip");
// Initialize Crashpad database
std::unique_ptr<crashpad::CrashReportDatabase> database = crashpad::CrashReportDatabase::Initialize(reports_dir);
if (database == NULL) return false;
// Disable automated crash uploads
crashpad::Settings *settings = database->GetSettings();
if (settings == NULL) return false;
settings->SetUploadsEnabled(false);
// Start crash handler
client = new crashpad::CrashpadClient();
status = client->StartHandler(handler, reports_dir, metrics_dir,
"https://olivevideoeditor.org/crashpad/report.php",
annotations, arguments, true, true);
}
// Start crash handler
client = new crashpad::CrashpadClient();
bool status = client->StartHandler(handler, reports_dir, metrics_dir,
"https://olivevideoeditor.org/crashpad/report.php",
annotations, arguments, true, true);
// Override Crashpad exception filter with our own
if (status) {
#if defined(OS_WIN)
SetUnhandledExceptionFilter(Win32ExceptionHandler);
SetUnhandledExceptionFilter(Win32ExceptionHandler);
#elif defined(OS_LINUX)
crashpad::CrashpadClient::SetFirstChanceExceptionHandler(LinuxExceptionHandler);
crashpad::CrashpadClient::SetFirstChanceExceptionHandler(LinuxExceptionHandler);
#endif
} else {
qWarning() << "Failed to start Crashpad, automatic crash reporting will be disabled";
}
return status;
}
+26 -4
View File
@@ -29,6 +29,9 @@
#include <QInputDialog>
#include <QMessageBox>
#include <QStyleFactory>
#ifdef Q_OS_WINDOWS
#include <QtPlatformHeaders/QWindowsWindowFunctions>
#endif
#include "audio/audiomanager.h"
#include "cli/clitask/clitaskdialog.h"
@@ -374,18 +377,30 @@ void Core::DialogProjectPropertiesShow()
void Core::DialogExportShow()
{
TimeBasedPanel* latest_time_based = PanelManager::instance()->MostRecentlyFocused<TimeBasedPanel>();
// First try the most recently focused time based window
TimeBasedPanel* time_panel = PanelManager::instance()->MostRecentlyFocused<TimeBasedPanel>();
if (latest_time_based && latest_time_based->GetConnectedViewer()) {
if (latest_time_based->GetConnectedViewer()->GetLength() == 0) {
// If that fails try defaulting to the first timeline (i.e. if a project has just been loaded).
if (!time_panel->GetConnectedViewer()) {
// Safe to assume there will always be one timeline.
time_panel = PanelManager::instance()->GetPanelsOfType<TimelinePanel>().first();
}
if (time_panel && time_panel->GetConnectedViewer()) {
if (time_panel->GetConnectedViewer()->GetLength() == 0) {
QMessageBox::critical(main_window_,
tr("Error"),
tr("This Sequence is empty. There is nothing to export."),
QMessageBox::Ok);
} else {
ExportDialog ed(latest_time_based->GetConnectedViewer(), main_window_);
ExportDialog ed(time_panel->GetConnectedViewer(), main_window_);
ed.exec();
}
} else {
QMessageBox::critical(main_window_,
tr("Error"),
tr("No valid sequence detected.\n\nMake sure a sequence is loaded and it has a connected Viewer node."),
QMessageBox::Ok);
}
}
@@ -674,12 +689,19 @@ void Core::StartGUI(bool full_screen)
// Create main window and open it
main_window_ = new MainWindow();
if (full_screen) {
main_window_->showFullScreen();
} else {
main_window_->showMaximized();
}
#ifdef Q_OS_WINDOWS
// Workaround for Qt bug where menus don't appear in full screen mode
// See: https://doc.qt.io/qt-5/windows-issues.html
QWindowsWindowFunctions::setHasBorderInFullScreen(main_window_->windowHandle(), true);
#endif
// When a new project is opened, update the mainwindow
connect(this, &Core::ProjectOpened, main_window_, &MainWindow::ProjectOpen);
connect(this, &Core::ProjectClosed, main_window_, &MainWindow::ProjectClose);
+14 -10
View File
@@ -66,7 +66,8 @@ set (_crashpad_components
client
util
third_party/mini_chromium/mini_chromium/base
compat)
compat
)
foreach (COMPONENT ${_crashpad_components})
get_filename_component(SHORT_COMPONENT ${COMPONENT} NAME)
string(TOUPPER ${SHORT_COMPONENT} UPPER_COMPONENT)
@@ -80,13 +81,6 @@ foreach (COMPONENT ${_crashpad_components})
list(APPEND CRASHPAD_LIBRARIES ${CRASHPAD_${UPPER_COMPONENT}_LIB})
endforeach()
if (UNIX AND NOT APPLE)
list(APPEND CRASHPAD_LIBRARIES
${CMAKE_DL_LIBS} # Crashpad compat lib needs libdl.so (-ldl)
Threads::Threads # Link against libpthread.so (-lpthread)
)
endif()
# Find Breakpad's minidump_stackwalk
find_path(BREAKPAD_BIN_DIR
"minidump_stackwalk${CMAKE_EXECUTABLE_SUFFIX}"
@@ -100,7 +94,17 @@ PATH_SUFFIXES
find_package_handle_standard_args(GoogleCrashpad
REQUIRED_VARS
CRASHPAD_LIBRARIES
CRASHPAD_INCLUDE_DIRS
CRASHPAD_CLIENT_LIB
CRASHPAD_UTIL_LIB
CRASHPAD_BASE_LIB
BREAKPAD_BIN_DIR
CRASHPAD_CLIENT_INCLUDE_DIR
CRASHPAD_BASE_INCLUDE_DIR
)
if (UNIX AND NOT APPLE)
list(APPEND CRASHPAD_LIBRARIES
${CMAKE_DL_LIBS} # Crashpad compat lib needs libdl.so (-ldl)
Threads::Threads # Link against libpthread.so (-lpthread)
)
endif()
-1
View File
@@ -1 +0,0 @@
NOTE: This build is by no means stable or intended for serious use. It's a complete rewrite of the entire program and only here to simplify testing of what has been implemented. For any serious work, stick to the 0.1.x releases below.