Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge dev -> main #29

Merged
merged 16 commits into from
Feb 5, 2025
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
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