Skip to content
Merged
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
123 changes: 64 additions & 59 deletions .github/workflows/qctools.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,20 +8,20 @@ jobs:

strategy:
matrix:
compiler: ['clang-9']
compiler: ['clang-18']
include:
- compiler: clang-9
packages: llvm@15
- compiler: clang-18
packages: llvm@18
env: { 'CC': 'clang', 'CXX': 'clang++' }

runs-on: macos-latest

env: ${{ matrix.env }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1

- name: Checkout submodules
shell: bash
Expand All @@ -35,7 +35,7 @@ jobs:

- name: Install dependencies
run: |
brew install ${{ matrix.packages }} pkg-config ffmpeg@6 qt@5
brew install ${{ matrix.packages }} pkg-config ffmpeg@8 qt@5

- name: Install qwt-qt5
run: |
Expand All @@ -57,30 +57,31 @@ jobs:
USE_BREW: true
run: |
cd Project/QtCreator
sed -i '' 's/std::atomic_bool abortRequest = false;/std::atomic_bool abortRequest{false};/g' qctools-QtAVPlayer/src/QtAVPlayer/qavdemuxer.cpp || true # temporary fix
mkdir build
cd build
export PKG_CONFIG_PATH="/opt/homebrew/opt/ffmpeg@6/lib/pkgconfig"
export PKG_CONFIG_PATH="/opt/homebrew/opt/ffmpeg@8/lib/pkgconfig"
qmake ..
make CC=$CC CXX=$CXX -j4

build-macos-brew-Qt6:

strategy:
matrix:
compiler: ['clang-9']
compiler: ['clang-18']
include:
- compiler: clang-9
packages: llvm@15
- compiler: clang-18
packages: llvm@18
env: { 'CC': 'clang', 'CXX': 'clang++', 'HOMEBREW_NO_INSTALL_CLEANUP': '1', 'HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK': '1' }

runs-on: macos-latest

env: ${{ matrix.env }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1

- name: Checkout submodules
shell: bash
Expand Down Expand Up @@ -113,6 +114,7 @@ jobs:
USE_BREW: true
run: |
cd Project/QtCreator
sed -i '' 's/#if QT_VERSION < QT_VERSION_CHECK(6, 4, 0)/#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)/g' qctools-QtAVPlayer/src/QtAVPlayer/qavvideoframe.cpp || true # temporary fix
mkdir build
cd build
export PKG_CONFIG_PATH="/opt/homebrew/opt/ffmpeg@6/lib/pkgconfig"
Expand All @@ -123,10 +125,10 @@ jobs:

strategy:
matrix:
compiler: ['clang-9']
compiler: ['clang-18']
include:
- compiler: clang-9
packages: llvm@15
- compiler: clang-18
packages: llvm@18
env: { 'CC': 'clang', 'CXX': 'clang++' }
- qt_version: "5.15.*"

Expand All @@ -135,9 +137,9 @@ jobs:
env: ${{ matrix.env }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1

- name: Checkout submodules
shell: bash
Expand Down Expand Up @@ -180,7 +182,7 @@ jobs:

- name: Build FFmpeg
run: |
git clone --depth 1 --branch n6.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
git clone --depth 1 --branch n8.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
cd ../ffmpeg
./configure --enable-gpl \
--enable-static \
Expand All @@ -199,31 +201,32 @@ jobs:
USE_BREW: false
run: |
cd Project/QtCreator
sed -i '' 's/std::atomic_bool abortRequest = false;/std::atomic_bool abortRequest{false};/g' qctools-QtAVPlayer/src/QtAVPlayer/qavdemuxer.cpp || true # temporary fix
mkdir build
cd build
qmake ..
qmake ..
make CC=$CC CXX=$CXX -j4

build-macos-no-brew-Qt6:

strategy:
matrix:
compiler: ['clang-9']
compiler: ['clang-18']
include:
- compiler: clang-9
packages: llvm@15
- compiler: clang-18
packages: llvm@18
env: { 'CC': 'clang', 'CXX': 'clang++', 'HOMEBREW_NO_INSTALL_CLEANUP': '1', 'HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK': '1' }
- qt_version: "6.5.*"
- qt_version: "6.8.*"
qt_modules: "qtmultimedia"

runs-on: macos-latest

env: ${{ matrix.env }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1

- name: Checkout submodules
shell: bash
Expand Down Expand Up @@ -253,12 +256,14 @@ jobs:
run: |
git clone --branch qwt-6.3 --depth 1 https://git.code.sf.net/p/qwt/git ../qwt
cd ../qwt
qmake -r
sed -i '' 's/^QWT_CONFIG += QwtOpenGL$/QWT_CONFIG -= QwtOpenGL/g' qwtconfig.pri
cat qwtconfig.pri
qmake -r "QMAKE_CXXFLAGS+=-include arm_acle.h"
make CC=$CC CXX=$CXX -j4

- name: Build FFmpeg
run: |
git clone --depth 1 --branch n6.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
git clone --depth 1 --branch n8.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
cd ../ffmpeg
./configure --enable-gpl \
--enable-static \
Expand Down Expand Up @@ -299,9 +304,9 @@ jobs:
env: ${{ matrix.env }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1
- name: Checkout submodules
shell: bash
run: |
Expand Down Expand Up @@ -342,7 +347,7 @@ jobs:

- name: Build FFmpeg
run: |
git clone --depth 1 --branch n6.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
git clone --depth 1 --branch n8.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
cd ../ffmpeg
./configure --enable-gpl \
--enable-shared \
Expand Down Expand Up @@ -373,7 +378,7 @@ jobs:
- compiler: gcc-9
packages: gcc-9 g++-9 libbz2-dev
env: { 'CC': 'gcc-9', 'CXX': 'g++-9' }
- qt_version: "6.5.*"
- qt_version: "6.6.*"
qt_modules: "qtmultimedia qt5compat"
qt_packages: "libxkbcommon-dev libgstreamer-plugins-base1.0-0 libgstreamer-gl1.0-0"

Expand All @@ -382,9 +387,9 @@ jobs:
env: ${{ matrix.env }}

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1
- name: Checkout submodules
shell: bash
run: |
Expand Down Expand Up @@ -426,7 +431,7 @@ jobs:

- name: Build FFmpeg
run: |
git clone --depth 1 --branch n6.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
git clone --depth 1 --branch n8.1 https://github.com/FFmpeg/FFmpeg ../ffmpeg
cd ../ffmpeg
./configure --enable-gpl \
--enable-shared \
Expand Down Expand Up @@ -457,9 +462,9 @@ jobs:
runs-on: windows-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1

- name: Checkout submodules
shell: bash
Expand Down Expand Up @@ -495,9 +500,9 @@ jobs:
shell: pwsh
run: |
Set-Location ..
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/243719342)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-6.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-6.1.zip")).browser_download_url')
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/342531362)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-8.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-8.1.zip")).browser_download_url')
Invoke-WebRequest -Uri "$ffmpeg_url" -OutFile "$ffmpeg_name.zip"
Expand-Archive -Path "$ffmpeg_name.zip" -DestinationPath .
Rename-Item -Path "$ffmpeg_name" -NewName "ffmpeg"
Expand Down Expand Up @@ -533,15 +538,15 @@ jobs:
strategy:
matrix:
include:
- qt_version: "6.3.0"
- qt_version: "6.6.*"
qt_modules: "qtmultimedia qt5compat"

runs-on: windows-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1

- name: Checkout submodules
shell: bash
Expand Down Expand Up @@ -578,9 +583,9 @@ jobs:
shell: pwsh
run: |
Set-Location ..
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/243719342)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-6.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-6.1.zip")).browser_download_url')
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/342531362)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-8.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-8.1.zip")).browser_download_url')
Invoke-WebRequest -Uri "$ffmpeg_url" -OutFile "$ffmpeg_name.zip"
Expand-Archive -Path "$ffmpeg_name.zip" -DestinationPath .
Rename-Item -Path "$ffmpeg_name" -NewName "ffmpeg"
Expand Down Expand Up @@ -617,12 +622,12 @@ jobs:
matrix:
qt_version: ["5.15.*"]

runs-on: windows-latest
runs-on: windows-2022

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1

- name: Checkout submodules
shell: bash
Expand Down Expand Up @@ -662,9 +667,9 @@ jobs:
shell: pwsh
run: |
Set-Location ..
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/243719342)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-6.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-6.1.zip")).browser_download_url')
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/342531362)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-8.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-8.1.zip")).browser_download_url')
Invoke-WebRequest -Uri "$ffmpeg_url" -OutFile "$ffmpeg_name.zip"
Expand-Archive -Path "$ffmpeg_name.zip" -DestinationPath .
Rename-Item -Path "$ffmpeg_name" -NewName "ffmpeg"
Expand All @@ -686,7 +691,7 @@ jobs:
shell: cmd
run: |
cd Project/QtCreator
qmake
qmake QMAKE_CFLAGS+=/utf-8 QMAKE_CXXFLAGS+=/utf-8

- name: Build QCTools
shell: cmd
Expand All @@ -699,15 +704,15 @@ jobs:
strategy:
matrix:
include:
- qt_version: "6.3.0"
- qt_version: "6.6.*"
qt_modules: "qtmultimedia qt5compat"

runs-on: windows-latest

steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v5
with:
fetch: 1
fetch-depth: 1

- name: Checkout submodules
shell: bash
Expand Down Expand Up @@ -749,9 +754,9 @@ jobs:
shell: pwsh
run: |
Set-Location ..
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/243719342)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-6.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-6.1.zip")).browser_download_url')
$json = $(curl -L -H "Accept: application/vnd.github+json" https://api.github.com/repos/BtbN/FFmpeg-Builds/releases/342531362)
$ffmpeg_name = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-8.1.zip")).name | sub("\\.zip$";"")')
$ffmpeg_url = $($json | jq -r '.assets[] | select(.name | endswith("-win64-gpl-shared-8.1.zip")).browser_download_url')
Invoke-WebRequest -Uri "$ffmpeg_url" -OutFile "$ffmpeg_name.zip"
Expand-Archive -Path "$ffmpeg_name.zip" -DestinationPath .
Rename-Item -Path "$ffmpeg_name" -NewName "ffmpeg"
Expand Down Expand Up @@ -779,4 +784,4 @@ jobs:
shell: cmd
run: |
cd Project/QtCreator
nmake
nmake
1 change: 1 addition & 0 deletions Project/BuildAllFromSource/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,7 @@ if (Test-Path -Path qctools\Project\QtCreator\build) {
}
New-Item -ItemType directory -Name qctools\Project\QtCreator\build
Push-Location -Path qctools\Project\QtCreator\build
git -C .. apply "$SCRIPT_DIR\qtavplayer-pktinfo.patch" ; Cmd-Result
$Env:QWT_ROOT="$INSTALL_DIR/output"
$Env:FFMPEG="$INSTALL_DIR/output"
qmake QMAKE_CXXFLAGS+=/Zi QMAKE_LFLAGS+=/INCREMENTAL:NO QMAKE_LFLAGS+=/Debug DEFINES+=QT_AVPLAYER_MULTIMEDIA .. ; Cmd-Result
Expand Down
2 changes: 1 addition & 1 deletion Project/BuildAllFromSource/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,6 @@ pushd ffmpeg/build
lipo -create $INSTALL_DIR/output/x86_64/lib/libavfilter.a $INSTALL_DIR/output/arm64/lib/libavfilter.a -output $INSTALL_DIR/output/lib/libavfilter.a
lipo -create $INSTALL_DIR/output/x86_64/lib/libavformat.a $INSTALL_DIR/output/arm64/lib/libavformat.a -output $INSTALL_DIR/output/lib/libavformat.a
lipo -create $INSTALL_DIR/output/x86_64/lib/libavutil.a $INSTALL_DIR/output/arm64/lib/libavutil.a -output $INSTALL_DIR/output/lib/libavutil.a
lipo -create $INSTALL_DIR/output/x86_64/lib/libpostproc.a $INSTALL_DIR/output/arm64/lib/libpostproc.a -output $INSTALL_DIR/output/lib/libpostproc.a
lipo -create $INSTALL_DIR/output/x86_64/lib/libswresample.a $INSTALL_DIR/output/arm64/lib/libswresample.a -output $INSTALL_DIR/output/lib/libswresample.a
lipo -create $INSTALL_DIR/output/x86_64/lib/libswscale.a $INSTALL_DIR/output/arm64/lib/libswscale.a -output $INSTALL_DIR/output/lib/libswscale.a
cp -r $INSTALL_DIR/output/x86_64/include $INSTALL_DIR/output
Expand Down Expand Up @@ -221,6 +220,7 @@ fi
mkdir qctools/Project/QtCreator/build
pushd qctools/Project/QtCreator/build
(
git -C .. apply "$SCRIPT_DIR/qtavplayer-pktinfo.patch"
export QWT_ROOT=$INSTALL_DIR/output FFMPEG=$INSTALL_DIR/output
$BINQMAKE "${QT_CONFIGURE_OPTS[@]}" STATIC=1 ..
make
Expand Down
2 changes: 1 addition & 1 deletion Project/BuildAllFromSource/dependencies.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
freetype:https://download.savannah.gnu.org/releases/freetype/freetype-2.13.2.tar.xz
harfbuzz:https://github.com/harfbuzz/harfbuzz/releases/download/10.2.0/harfbuzz-10.2.0.tar.xz
ffmpeg:https://ffmpeg.org/releases/ffmpeg-6.1.2.tar.xz
ffmpeg:https://ffmpeg.org/releases/ffmpeg-8.1.1.tar.xz
qwt:https://sourceforge.net/projects/qwt/files/qwt/6.3.0/qwt-6.3.0.tar.bz2
Loading
Loading