Skip to content

Commit

Permalink
Merge dev -> main
Browse files Browse the repository at this point in the history
Merge dev -> main
  • Loading branch information
MikeWang000000 authored Feb 5, 2025
2 parents 362dd16 + f17314a commit b3b8978
Show file tree
Hide file tree
Showing 27 changed files with 561 additions and 216 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/caching.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ on:
jobs:
Windows-MSYS2-MINGW64-Caching:
name: Windows MSYS2/MINGW64 Caching
runs-on: windows-2022
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
steps:
- name: Check out repository code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
Expand All @@ -24,7 +24,7 @@ jobs:
cd '${{ github.workspace }}' && ./dist/win/install_deps.sh
du -sh 'C:\msys2'
- name: Cache MSYS2
uses: actions/cache@v3
uses: actions/cache@v4
with:
key: spek-x-msys2-mingw64
path: C:\msys2
84 changes: 57 additions & 27 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,40 +8,40 @@ env:
jobs:
Build-Debian-x86_64:
name: Build Spek-X (Debian, x86_64)
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container: debian:sid
steps:
- name: Check out repository code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo sed -i 's/jammy/kinetic/g' /etc/apt/sources.list
sudo apt update
sudo apt install -y intltool libwxgtk3.2-dev wx-common libavcodec-dev libavformat-dev
apt update
apt full-upgrade -y
apt install -y g++ make pkg-config libtool intltool libwxgtk3.2-dev wx-common libavcodec-dev libavformat-dev
- name: Compile and bundle application
run: |
cd '${{ github.workspace }}'
mkdir -p ./dist/debian/spek-x/usr ./dist/debian/spek-x/DEBIAN
./autogen.sh --prefix="$(realpath ./dist/debian/spek-x/usr)"
make -j2 && make install
cp ./dist/debian/control.ci ./dist/debian/spek-x/DEBIAN/control
dpkg-deb --build dist/debian/spek-x
- name: Archive production artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Spek-X (Debian, x86_64)
path: ${{ github.workspace }}/dist/debian/spek-x.deb

Build-Windows-x64:
name: Build Spek-X (Windows, x64)
runs-on: windows-2022
runs-on: windows-latest
defaults:
run:
shell: cmd
steps:
- name: Check out repository code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Get dependencies from cache
uses: actions/cache/restore@v3
uses: actions/cache/restore@v4
with:
key: spek-x-msys2-mingw64
path: C:\msys2
Expand All @@ -52,64 +52,94 @@ jobs:
run: |
"C:\msys2\msys64\usr\bin\env.exe" MSYSTEM=MINGW64 /usr/bin/bash -lc "cd '${{ github.workspace }}' && ./dist/win/bundle.sh"
- name: Archive production artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Spek-X (Windows, x64)
path: ${{ github.workspace }}/dist/win/Spek/Spek.zip

Build-macOS-Intel:
name: Build Spek-X (macOS, Intel)
runs-on: macos-12
runs-on: macos-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install dependencies
run: |
eval "$(brew shellenv)"
brew unlink perl
cd '${{ github.workspace }}' && ./dist/osx/install_deps.sh
cd '${{ github.workspace }}' && ARCH=x86_64 ./dist/osx/install_deps.sh
- name: Compile and bundle application
run: |
eval "$(brew shellenv)"
cd '${{ github.workspace }}' && ./dist/osx/bundle.sh
cd '${{ github.workspace }}' && ARCH=x86_64 ./dist/osx/bundle.sh
- name: Archive production artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Spek-X (macOS, Intel)
path: ${{ github.workspace }}/dist/osx/Spek.tgz
path: ${{ github.workspace }}/dist/osx/Spek.x86_64.tgz

Build-macOS-AppleSilicon:
name: Build Spek-X (macOS, Apple Silicon)
runs-on: macos-12
runs-on: macos-latest
steps:
- name: Check out repository code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install dependencies
run: |
eval "$(brew shellenv)"
brew unlink perl
cd '${{ github.workspace }}' && ./dist/osx/cross/install_deps.sh i_am_ci
cd '${{ github.workspace }}' && ARCH=arm64 ./dist/osx/install_deps.sh
- name: Compile and bundle application
run: |
eval "$(brew shellenv)"
cd '${{ github.workspace }}' && ./dist/osx/cross/bundle.sh i_am_ci
cd '${{ github.workspace }}' && ARCH=arm64 ./dist/osx/bundle.sh
- name: Archive production artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Spek-X (macOS, Apple Silicon)
path: ${{ github.workspace }}/dist/osx/Spek.arm64.tgz

Build-macOS-Universal:
name: Build Spek-X (macOS, Universal)
runs-on: macos-latest
needs:
- Build-macOS-Intel
- Build-macOS-AppleSilicon
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Download Spek-X (macOS, Intel)
uses: actions/download-artifact@v4
with:
name: Spek-X (macOS, Intel)
path: ${{ github.workspace }}/dist/osx/
- name: Download Spek-X (macOS, Apple Silicon)
uses: actions/download-artifact@v4
with:
name: Spek-X (macOS, Apple Silicon)
path: ${{ github.workspace }}/dist/osx/
- name: Bundle application
run: |
eval "$(brew shellenv)"
cd '${{ github.workspace }}' && ./dist/osx/bundle_universal.sh merge_only
- name: Archive production artifacts
uses: actions/upload-artifact@v4
with:
name: Spek-X (macOS, Universal)
path: ${{ github.workspace }}/dist/osx/Spek.tgz

Unit-Test:
name: Unit Tests
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
container: debian:sid
steps:
- name: Check out repository code
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo sed -i 's/jammy/kinetic/g' /etc/apt/sources.list
sudo apt update
sudo apt install -y intltool libwxgtk3.2-dev wx-common libavcodec-dev libavformat-dev
apt update
apt full-upgrade -y
apt install -y g++ make pkg-config libtool intltool libwxgtk3.2-dev wx-common libavcodec-dev libavformat-dev
- name: Run tests
run: |
./autogen.sh && make check
2 changes: 1 addition & 1 deletion MANUAL.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SPEK-X(1) User's Guide | Version 0.9.3
# SPEK-X(1) User's Guide | Version 0.9.4

## NAME

Expand Down
17 changes: 11 additions & 6 deletions README-zh_CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,21 +12,26 @@ Spek 可用于 *BSD、GNU/Linux、Windows 和 macOS.

<img src="./data/spek-screenshot.png" height="500">

## Spek-X 0.9.2 - 2023/1/27
## Spek-X 0.9.4 - 2025/2/6

### Sources / Packages

Category | Download link
-------------------------------------|----------------
源代码包 | [v0.9.3.tar.gz](https://github.com/MikeWang000000/spek-X/archive/v0.9.3.tar.gz)
Windows (x64) | [spek-x-0.9.3-windows-x86_64.zip](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.3/spek-x-0.9.3-windows-x86_64.zip)
Windows (Arm64) | [spek-x-0.9.3-windows-aarch64.zip](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.3/spek-x-0.9.3-windows-aarch64.zip)
macOS (Intel) | [spek-x-0.9.3-macos-x86_64.tgz](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.3/spek-x-0.9.3-macos-x86_64.tgz)
macOS (Apple Silicon) | [spek-x-0.9.3-macos-aarch64.tgz](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.3/spek-x-0.9.3-macos-aarch64.tgz)
源代码包 | [v0.9.4.tar.gz](https://github.com/MikeWang000000/spek-X/archive/v0.9.4.tar.gz)
Windows (x64) | [spek-x-0.9.4-windows-x86_64.zip](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.4/spek-x-0.9.4-windows-x86_64.zip)
Windows (Arm64) | [spek-x-0.9.4-windows-aarch64.zip](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.4/spek-x-0.9.4-windows-aarch64.zip)
macOS (Universal) | [spek-x-0.9.4-macos-universal.tgz](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.4/spek-x-0.9.4-macos-universal.tgz)
Debian 软件包 (deb-multimedia.org) | [spek-x-dmo/](https://deb-multimedia.org/pool/main/s/spek-x-dmo/)

### 新增功能和改进

Spek-X 0.9.4 更新:
* FFmpeg 更新至 7.1。
* 替换了 FFmpeg 不推荐的 API。
* macOS 程序现在通过 Universal Binary 的形式发布。
* Windows Arm64 程序现在编译启用了 FFmpeg 的汇编代码优化。

Spek-X 0.9.3 更新:
* FFmpeg 更新至 6.0。
* 支持 32-bit FLAC 音频。
Expand Down
17 changes: 11 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,21 +15,26 @@ Find out more about Spek on its website: <http://spek.cc/>

<img src="./data/spek-screenshot.png" height="500">

## Spek-X 0.9.2 - 2023/1/27
## Spek-X 0.9.4 - 2025/2/6

### Sources / Packages

Category | Download link
-------------------------------------|----------------
Source tarball | [v0.9.3.tar.gz](https://github.com/MikeWang000000/spek-X/archive/v0.9.3.tar.gz)
Windows (x64) | [spek-x-0.9.3-windows-x86_64.zip](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.3/spek-x-0.9.3-windows-x86_64.zip)
Windows (Arm64) | [spek-x-0.9.3-windows-aarch64.zip](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.3/spek-x-0.9.3-windows-aarch64.zip)
macOS (Intel) | [spek-x-0.9.3-macos-x86_64.tgz](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.3/spek-x-0.9.3-macos-x86_64.tgz)
macOS (Apple Silicon) | [spek-x-0.9.3-macos-aarch64.tgz](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.3/spek-x-0.9.3-macos-aarch64.tgz)
Source tarball | [v0.9.4.tar.gz](https://github.com/MikeWang000000/spek-X/archive/v0.9.4.tar.gz)
Windows (x64) | [spek-x-0.9.4-windows-x86_64.zip](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.4/spek-x-0.9.4-windows-x86_64.zip)
Windows (Arm64) | [spek-x-0.9.4-windows-aarch64.zip](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.4/spek-x-0.9.4-windows-aarch64.zip)
macOS (Universal) | [spek-x-0.9.4-macos-universal.tgz](https://github.com/MikeWang000000/spek-X/releases/download/v0.9.4/spek-x-0.9.4-macos-universal.tgz)
Debian packages (deb-multimedia.org) | [spek-x-dmo/](https://deb-multimedia.org/pool/main/s/spek-x-dmo/)

### New Features And Enhancements

Spek-X 0.9.4 Updates:
* Upgrade to FFmpeg 7.1.
* Replace deprecated FFmpeg APIs.
* macOS version is now distributed as a Universal Binary.
* Windows Arm64 version is now compiled with FFmpeg assembly optimizations.

Spek-X 0.9.3 Updates:
* Upgrade to FFmpeg 6.0.
* Add support for 32-bit FLAC audio.
Expand Down
25 changes: 20 additions & 5 deletions configure.ac
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
AC_INIT([Spek-X],[0.9.3])
AC_INIT([Spek-X],[0.9.4])
AC_CONFIG_SRCDIR([src/spek.cc])
AC_CONFIG_HEADERS([config.h])
AM_INIT_AUTOMAKE([1.11.1 foreign no-dist-gzip dist-xz serial-tests])
AM_SILENT_RULES([yes])

AC_LANG([C++])
AC_PROG_CXX
CXXFLAGS="$CXXFLAGS -std=gnu++11 -Wall -Wextra"
CXXFLAGS="$CXXFLAGS -O2 -std=gnu++11 -Wall -Wextra"
AC_PROG_CXXCPP
AC_PROG_LIBTOOL
AC_PROG_RANLIB
Expand Down Expand Up @@ -46,9 +46,24 @@ AM_COND_IF([USE_VALGRIND], [use_valgrind=yes], [use_valgrind=no])

AC_CHECK_LIB(m, log10)

PKG_CHECK_MODULES(AVFORMAT, [libavformat >= 59.27.100])
PKG_CHECK_MODULES(AVCODEC, [libavcodec >= 59.37.100])
PKG_CHECK_MODULES(AVUTIL, [libavutil >= 57.28.100])
PKG_CHECK_MODULES(AVFORMAT, [libavformat >= 59.27.100], [
AC_SUBST([AVFORMAT_CFLAGS])
AC_SUBST([AVFORMAT_LIBS])
])
PKG_CHECK_MODULES(AVCODEC, [libavcodec >= 59.37.100], [
AC_SUBST([AVCODEC_CFLAGS])
AC_SUBST([AVCODEC_LIBS])
])
PKG_CHECK_MODULES(AVUTIL, [libavutil >= 57.28.100], [
AC_SUBST([AVUTIL_CFLAGS])
AC_SUBST([AVUTIL_LIBS])
])

CXXFLAGS="$CXXFLAGS $AVFORMAT_CFLAGS $AVCODEC_CFLAGS $AVUTIL_CFLAGS"
LDFLAGS="$LDFLAGS $AVFORMAT_LIBS $AVCODEC_LIBS $AVUTIL_LIBS"
if test "$os" = OSX; then
LDFLAGS="$LDFLAGS -framework Cocoa"
fi

AM_OPTIONS_WXCONFIG
reqwx=3.0.0
Expand Down
7 changes: 7 additions & 0 deletions dist/debian/changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
spek-x (0.9.4-1) unstable; urgency=low

* Replace deprecated FFmpeg APIs
* Fix GCC 14 compilation warnings

-- MikeWang000000 <mikewang000000@gmail.com> Thu, 06 Feb 2025 04:07:29 +0800

spek-x (0.9.2-1) unstable; urgency=low

* Support switching between audio channels.
Expand Down
8 changes: 4 additions & 4 deletions dist/debian/control
Original file line number Diff line number Diff line change
Expand Up @@ -6,10 +6,10 @@ Build-Depends: debhelper (>= 9),
autotools-dev,
pkg-config,
intltool (>= 0.35),
libavcodec-dev (>= 10:5.0~),
libavformat-dev (>= 10:5.0~),
libavutil-dev (>= 10:5.0~),
libwxgtk3.0-dev,
libavcodec-dev (>= 7:5.0.1),
libavformat-dev (>= 7:5.0.1),
libavutil-dev (>= 7:5.0.1),
libwxgtk3.2-dev,
wx-common
Standards-Version: 3.9.6
Homepage: https://github.com/MikeWang000000/spek-X
Expand Down
2 changes: 1 addition & 1 deletion dist/debian/control.ci
Original file line number Diff line number Diff line change
Expand Up @@ -5,5 +5,5 @@ Priority: optional
Maintainer: MikeWang000000 <mikewang000000@gmail.com>
Homepage: https://github.com/MikeWang000000/spek-X
Architecture: amd64
Depends: libavcodec59, libavformat59, libavutil57, libc6, libgcc-s1, libstdc++6, libwxbase3.2-0, libwxgtk3.2-0
Depends: libavcodec61, libavformat61, libavutil59, libc6, libgcc-s1, libstdc++6, libwxbase3.2-1t64, libwxbase3.2-1t64
Description: Spek-X helps to analyse your audio files by showing their spectrogram.
8 changes: 4 additions & 4 deletions dist/osx/Info.plist.in
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@
<key>CFBundleExecutable</key>
<string>Spek</string>
<key>CFBundleGetInfoString</key>
<string>Spek @VERSION@</string>
<string>Spek-X @VERSION@</string>
<key>CFBundleIconFile</key>
<string>Spek.icns</string>
<key>CFBundleIdentifier</key>
<string>org.spek-project</string>
<string>org.spek-x-project</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
Expand All @@ -25,9 +25,9 @@
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSHumanReadableCopyright</key>
<string>Copyright (c) 2010-2013 Alexander Kojevnikov and contributors</string>
<string>Copyright (c) 2010-2025 Alexander Kojevnikov and contributors</string>
<key>LSMinimumSystemVersion</key>
<string>10.5</string>
<string>10.10</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
Expand Down
Loading

0 comments on commit b3b8978

Please sign in to comment.