Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,11 +51,11 @@ jobs:
${{ matrix.cmake-gen }}>
runs-on: ubuntu-latest
container:
image: olivevideoeditor/ci-olive:2022.3
image: olivevideoeditor/ci-olive:2022.4

steps:
- name: Checkout Source Code
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
submodules: 'true'

Expand Down Expand Up @@ -128,11 +128,11 @@ jobs:
pkgname="${filename/x86_64/Linux-x86_64}"
mv "${filename}" "${pkgname}"
basename="${filename%.*}"
echo "::set-output name=pkgname::${pkgname}"
echo "::set-output name=artifact::${basename/x86_64/Linux-x86_64-${{ matrix.cc-compiler }}}"
echo "pkgname=${pkgname}" >> $GITHUB_OUTPUT
echo "artifact=${basename/x86_64/Linux-x86_64-${{ matrix.cc-compiler }}}" >> $GITHUB_OUTPUT

- name: Upload Artifact to GitHub
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: ${{ steps.package.outputs.artifact }}
Expand All @@ -157,7 +157,7 @@ jobs:

steps:
- name: Checkout Source Code
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
submodules: 'true'

Expand Down Expand Up @@ -270,13 +270,13 @@ jobs:
mv olive-editor deploy

- name: Upload Installer Artifact to GitHub
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ env.PKGNAME }}-Installer
path: ${{ runner.workspace }}/build/${{ env.PKGNAME }}.exe

- name: Upload Portable Artifact to GitHub
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
with:
name: ${{ env.PKGNAME }}-Portable
path: ${{ runner.workspace }}/build/deploy
Expand Down Expand Up @@ -311,7 +311,7 @@ jobs:

steps:
- name: Checkout Source Code
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
submodules: 'true'

Expand Down Expand Up @@ -458,7 +458,7 @@ jobs:
hdiutil convert img.dmg -format UDZO -o $PKGNAME.dmg

- name: Upload Artifact to GitHub
uses: actions/upload-artifact@v2
uses: actions/upload-artifact@v3
continue-on-error: true
with:
name: ${{ env.PKGNAME }}
Expand Down
2 changes: 2 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,8 @@ else()
)
if (USE_WERROR)
list(APPEND OLIVE_COMPILE_OPTIONS "-Werror")
# FFmpeg 5.1 (libavutil 57.24.100) adds new channel layout API and deprecates old one
list(APPEND OLIVE_COMPILE_OPTIONS "-Wno-deprecated-declarations")
endif()
endif()

Expand Down
12 changes: 6 additions & 6 deletions app/common/qtutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -104,11 +104,11 @@ uint qHash(const core::TimeRange& r, uint seed = 0);

}

Q_DECLARE_METATYPE(olive::core::rational);
Q_DECLARE_METATYPE(olive::core::Color);
Q_DECLARE_METATYPE(olive::core::TimeRange);
Q_DECLARE_METATYPE(olive::core::Bezier);
Q_DECLARE_METATYPE(olive::core::AudioParams);
Q_DECLARE_METATYPE(olive::core::SampleBuffer);
Q_DECLARE_METATYPE(olive::core::rational)
Q_DECLARE_METATYPE(olive::core::Color)
Q_DECLARE_METATYPE(olive::core::TimeRange)
Q_DECLARE_METATYPE(olive::core::Bezier)
Q_DECLARE_METATYPE(olive::core::AudioParams)
Q_DECLARE_METATYPE(olive::core::SampleBuffer)

#endif // QTVERSIONABSTRACTION_H
18 changes: 9 additions & 9 deletions docker/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ Pull images from [Docker Hub](https://hub.docker.com/u/olivevideoeditor):

```
docker pull olivevideoeditor/ci-common:2
docker pull olivevideoeditor/ci-package-otio:0.14.1
docker pull olivevideoeditor/ci-package-otio:0.15
docker pull olivevideoeditor/ci-package-crashpad
docker pull olivevideoeditor/ci-package-ffmpeg:5.0
docker pull olivevideoeditor/ci-package-ocio:2022-2.1.1
docker pull olivevideoeditor/ci-package-ffmpeg:5.1.2
docker pull olivevideoeditor/ci-package-ocio:2022-2.1.3
docker pull olivevideoeditor/ci-olive:2022.2
```

Expand All @@ -46,10 +46,10 @@ Rebuild all images locally:
```
cd docker
docker build -t olivevideoeditor/ci-common:2 -f ci-common/Dockerfile .
docker build -t olivevideoeditor/ci-package-otio:0.14.1 -f ci-otio/Dockerfile .
docker build -t olivevideoeditor/ci-package-otio:0.15 -f ci-otio/Dockerfile .
docker build -t olivevideoeditor/ci-package-crashpad -f ci-crashpad/Dockerfile .
docker build -t olivevideoeditor/ci-package-ffmpeg:5.0 -f ci-ffmpeg/Dockerfile .
docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.1 -f ci-ocio/Dockerfile .
docker build -t olivevideoeditor/ci-package-ffmpeg:5.1.2 -f ci-ffmpeg/Dockerfile .
docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.3 -f ci-ocio/Dockerfile .
docker build -t olivevideoeditor/ci-olive:2022.2 -f ci-olive/Dockerfile .
```

Expand All @@ -61,9 +61,9 @@ Publish images:

```
docker push olivevideoeditor/ci-common:2
docker push olivevideoeditor/ci-package-otio:0.14.1
docker push olivevideoeditor/ci-package-otio:0.15
docker push olivevideoeditor/ci-package-crashpad
docker push olivevideoeditor/ci-package-ffmpeg:5.0
docker push olivevideoeditor/ci-package-ocio:2022-2.1.1
docker push olivevideoeditor/ci-package-ffmpeg:5.1.2
docker push olivevideoeditor/ci-package-ocio:2022-2.1.3
docker push olivevideoeditor/ci-olive:2022.2
```
2 changes: 1 addition & 1 deletion docker/ci-common/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ ARG OLIVE_ORG=olivevideoeditor
ARG ASWF_PKG_ORG=aswftesting
ARG CI_COMMON_VERSION=2
ARG DTS_VERSION=9
ARG CMAKE_VERSION=3.22.3
ARG CMAKE_VERSION=3.24.3

FROM ${ASWF_PKG_ORG}/ci-package-clang:${CI_COMMON_VERSION} as ci-package-clang
FROM ${ASWF_PKG_ORG}/ci-package-ninja:${CI_COMMON_VERSION} as ci-package-ninja
Expand Down
12 changes: 6 additions & 6 deletions docker/ci-ffmpeg/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@
# SPDX-License-Identifier: GPL-3.0-or-later

# Build image (default):
# docker build -t olivevideoeditor/ci-package-ffmpeg:5.0 -f ci-ffmpeg/Dockerfile .
# docker build -t olivevideoeditor/ci-package-ffmpeg:5.1.2 -f ci-ffmpeg/Dockerfile .

ARG OLIVE_ORG=olivevideoeditor
ARG CI_COMMON_VERSION=2
ARG FFMPEG_VERSION=5.0
ARG FFMPEG_VERSION=5.1.2
ARG NASM_VERSION=2.15.05
ARG YASM_VERSION=1.3.0
ARG SVTAV1_VERSION=v1.1.0
Expand All @@ -15,12 +15,12 @@ ARG OGG_VERSION=1.3.5
ARG OPUS_VERSION=1.3.1
ARG VORBIS_VERSION=1.3.7
ARG THEORA_VERSION=1.1.1
ARG VPX_VERSION=1.11.0
ARG WEBP_VERSION=1.2.2
ARG VPX_VERSION=1.12.0
ARG WEBP_VERSION=1.2.4
ARG LAME_VERSION=3.100
ARG XVID_VERSION=1.3.7
ARG OPENJPEG_VERSION=2.4.0
ARG LIBPNG_VERSION=1.6.37
ARG OPENJPEG_VERSION=2.5.0
ARG LIBPNG_VERSION=1.6.38
# TODO: Make version of x264 selectable?

FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-ffmpeg
Expand Down
4 changes: 2 additions & 2 deletions docker/ci-ocio/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@
# SPDX-License-Identifier: GPL-3.0-or-later

# Build image (default):
# docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.1 -f ci-ocio/Dockerfile .
# docker build -t olivevideoeditor/ci-package-ocio:2022-2.1.3 -f ci-ocio/Dockerfile .

ARG OLIVE_ORG=olivevideoeditor
ARG ASWF_PKG_ORG=aswftesting
ARG CI_COMMON_VERSION=2
ARG VFXPLATFORM_VERSION=2022
# OCIO repo branch or tag name
ARG OCIO_VERSION=v2.1.1
ARG OCIO_VERSION=v2.1.3
# Latest configs ~3 GB because of ACES 1.0.x.
# Upstream only copies nuke-default, therefore we also use the older configs.
ARG OCIO_CONFIGS_VERSION=1.0_r2
Expand Down
6 changes: 3 additions & 3 deletions docker/ci-oiio/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@
# SPDX-License-Identifier: GPL-3.0-or-later

# Build image (default):
# docker build -t olivevideoeditor/ci-package-oiio:2.3.13.0 -f ci-oiio/Dockerfile .
# docker build -t olivevideoeditor/ci-package-oiio:2.4.5.0 -f ci-oiio/Dockerfile .

ARG ASWF_PKG_ORG=aswftesting
ARG OLIVE_ORG=olivevideoeditor
ARG CI_COMMON_VERSION=2
ARG VFXPLATFORM_VERSION=2022
ARG OIIO_VERSION=v2.3.13.0
ARG OIIO_VERSION=v2.4.5.0
ARG YASM_VERSION=1.3.0
ARG JPEG_TURBO_VERSION=2.1.3
ARG JPEG_TURBO_VERSION=2.1.4

FROM ${ASWF_PKG_ORG}/ci-package-boost:${VFXPLATFORM_VERSION} as ci-package-boost
FROM ${ASWF_PKG_ORG}/ci-package-openexr:${VFXPLATFORM_VERSION} as ci-package-openexr
Expand Down
14 changes: 10 additions & 4 deletions docker/ci-olive/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ ARG OLIVE_ORG=olivevideoeditor
ARG ASWF_PKG_ORG=aswftesting
ARG CI_COMMON_VERSION=2
ARG VFXPLATFORM_VERSION=2022
ARG OCIO_VERSION=2.1.1
ARG FFMPEG_VERSION=5.0
ARG OTIO_VERSION=0.14.1
ARG OIIO_VERSION=2.3.13.0
ARG OCIO_VERSION=2.1.3
ARG FFMPEG_VERSION=5.1.2
ARG OTIO_VERSION=0.15
ARG OIIO_VERSION=2.4.5.0

FROM ${ASWF_PKG_ORG}/ci-package-qt:${VFXPLATFORM_VERSION} as ci-package-qt
FROM ${ASWF_PKG_ORG}/ci-package-python:${VFXPLATFORM_VERSION} as ci-package-python
Expand Down Expand Up @@ -72,6 +72,12 @@ COPY --from=ci-package-crashpad /. /usr/local/
COPY --from=ci-package-otio /. /usr/local/
COPY scripts/build_olive.sh /tmp/

# HACK: The ASWF Imath is compiled with Python support that we ignore to avoid an error:
# set_property could not find TARGET Imath::PyImath_Python3_9.
COPY scripts/DisableImathPython.patch scripts/DisableImathPythonRelease.patch /tmp/
RUN patch -u /usr/local/lib64/cmake/Imath/ImathTargets.cmake /tmp/DisableImathPython.patch
RUN patch -u /usr/local/lib64/cmake/Imath/ImathTargets-release.cmake /tmp/DisableImathPythonRelease.patch

RUN curl --location "https://github.com/probonopd/linuxdeployqt/releases/download/7/linuxdeployqt-7-x86_64.AppImage" \
-o "/usr/local/linuxdeployqt-x86_64.AppImage" && \
chmod a+x "/usr/local/linuxdeployqt-x86_64.AppImage"
17 changes: 15 additions & 2 deletions docker/ci-otio/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,26 @@
# SPDX-License-Identifier: GPL-3.0-or-later

# Build image (default):
# docker build -t olivevideoeditor/ci-package-otio:0.14.1 -f ci-otio/Dockerfile .
# docker build -t olivevideoeditor/ci-package-otio:0.15 -f ci-otio/Dockerfile .

ARG OLIVE_ORG=olivevideoeditor
ARG ASWF_PKG_ORG=aswftesting
ARG CI_COMMON_VERSION=2
ARG VFXPLATFORM_VERSION=2022
ARG OTIO_VERSION=v0.14.1
ARG OTIO_VERSION=v0.15
ARG CXX_STANDARD=17

# We are currently not interested in the Python implementation and bindings
#FROM ${ASWF_PKG_ORG}/ci-package-python:${VFXPLATFORM_VERSION} as ci-package-python
#FROM ${ASWF_PKG_ORG}/ci-package-qt:${VFXPLATFORM_VERSION} as ci-package-qt
#FROM ${ASWF_PKG_ORG}/ci-package-pyside:${VFXPLATFORM_VERSION} as ci-package-pyside

# Annoyingly, OTIO has Imath as a submodule and prefers it over external libs.
# This can clash with our Imath and OpenEXR versions, causing a linker error like:
# framehashcache.cpp:(.text+0x206b): undefined reference to `Imf_3_1::Header::Header(int, int, float, Imath_3_2::Vec2<float> const&, float, Imf_3_1::LineOrder, Imf_3_1::Compression)'
# We need our Imath for building OTIO and make it prefer ours.
FROM ${ASWF_PKG_ORG}/ci-package-imath:${VFXPLATFORM_VERSION} as ci-package-imath

FROM ${OLIVE_ORG}/ci-common:${CI_COMMON_VERSION} as ci-otio

ARG OLIVE_ORG
Expand Down Expand Up @@ -49,6 +55,13 @@ COPY scripts/build_otio.sh \
#COPY --from=ci-package-qt /. /usr/local/
#COPY --from=ci-package-pyside /. /usr/local/

COPY --from=ci-package-imath /. /usr/local/

# HACK: The ASWF Imath is compiled with Python support that we ignore to avoid an error:
# set_property could not find TARGET Imath::PyImath_Python3_9.
COPY scripts/DisableImathPythonRelease.patch /tmp/
RUN patch -u /usr/local/lib64/cmake/Imath/ImathTargets-release.cmake /tmp/DisableImathPythonRelease.patch

RUN /tmp/before_build.sh && \
/tmp/build_otio.sh && \
/tmp/copy_new_files.sh
Expand Down
35 changes: 35 additions & 0 deletions docker/scripts/DisableImathPython.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
--- ImathTargets.cmake 2022-05-25 22:12:51.000000000 +0000
+++ ImathTargets.cmake 2023-03-10 11:53:26.509209000 +0000
@@ -16,7 +16,7 @@
set(_targetsDefined)
set(_targetsNotDefined)
set(_expectedTargets)
-foreach(_expectedTarget Imath::ImathConfig Imath::Imath Imath::PyImathConfig Imath::PyImath_Python3_9)
+foreach(_expectedTarget Imath::ImathConfig Imath::Imath) # Imath::PyImathConfig Imath::PyImath_Python3_9
list(APPEND _expectedTargets ${_expectedTarget})
if(NOT TARGET ${_expectedTarget})
list(APPEND _targetsNotDefined ${_expectedTarget})
@@ -67,16 +67,16 @@
)

# Create imported target Imath::PyImathConfig
-add_library(Imath::PyImathConfig INTERFACE IMPORTED)
+#add_library(Imath::PyImathConfig INTERFACE IMPORTED)

# Create imported target Imath::PyImath_Python3_9
-add_library(Imath::PyImath_Python3_9 SHARED IMPORTED)
+#add_library(Imath::PyImath_Python3_9 SHARED IMPORTED)

-set_target_properties(Imath::PyImath_Python3_9 PROPERTIES
- INTERFACE_COMPILE_FEATURES "cxx_std_14"
- INTERFACE_INCLUDE_DIRECTORIES "/usr/local/include"
- INTERFACE_LINK_LIBRARIES "Imath::Imath"
-)
+#set_target_properties(Imath::PyImath_Python3_9 PROPERTIES
+# INTERFACE_COMPILE_FEATURES "cxx_std_14"
+# INTERFACE_INCLUDE_DIRECTORIES "/usr/local/include"
+# INTERFACE_LINK_LIBRARIES "Imath::Imath"
+#)

if(CMAKE_VERSION VERSION_LESS 3.0.0)
message(FATAL_ERROR "This file relies on consumers using CMake 3.0.0 or greater.")
29 changes: 29 additions & 0 deletions docker/scripts/DisableImathPythonRelease.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
--- ImathTargets-release.cmake 2022-05-25 22:12:51.000000000 +0000
+++ ImathTargets-release.cmake 2022-12-10 21:25:53.362472000 +0000
@@ -15,16 +15,17 @@
list(APPEND _IMPORT_CHECK_TARGETS Imath::Imath )
list(APPEND _IMPORT_CHECK_FILES_FOR_Imath::Imath "${_IMPORT_PREFIX}/lib64/libImath-3_1.so.29.4.0" )

+# HACK: Ignore Imath Python support for Olive
# Import target "Imath::PyImath_Python3_9" for configuration "Release"
-set_property(TARGET Imath::PyImath_Python3_9 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
-set_target_properties(Imath::PyImath_Python3_9 PROPERTIES
- IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE "Python3::Python"
- IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libPyImath_Python3_9-3_1.so.29.4.0"
- IMPORTED_SONAME_RELEASE "libPyImath_Python3_9-3_1.so.29"
- )
-
-list(APPEND _IMPORT_CHECK_TARGETS Imath::PyImath_Python3_9 )
-list(APPEND _IMPORT_CHECK_FILES_FOR_Imath::PyImath_Python3_9 "${_IMPORT_PREFIX}/lib64/libPyImath_Python3_9-3_1.so.29.4.0" )
+#set_property(TARGET Imath::PyImath_Python3_9 APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
+#set_target_properties(Imath::PyImath_Python3_9 PROPERTIES
+# IMPORTED_LINK_DEPENDENT_LIBRARIES_RELEASE "Python3::Python"
+# IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libPyImath_Python3_9-3_1.so.29.4.0"
+# IMPORTED_SONAME_RELEASE "libPyImath_Python3_9-3_1.so.29"
+# )
+#
+#list(APPEND _IMPORT_CHECK_TARGETS Imath::PyImath_Python3_9 )
+#list(APPEND _IMPORT_CHECK_FILES_FOR_Imath::PyImath_Python3_9 "${_IMPORT_PREFIX}/lib64/libPyImath_Python3_9-3_1.so.29.4.0" )

# Commands beyond this point should not need to know the version.
set(CMAKE_IMPORT_FILE_VERSION)
Loading