Skip to content

Add mpg123 and enable the mpg123 plugin in gst-plugins-good - #1849

Open
JumpLink wants to merge 1 commit into
wingtk:mainfrom
gjsify:add-mpg123
Open

JumpLink wants to merge 1 commit into
wingtk:mainfrom
gjsify:add-mpg123

Conversation

@JumpLink

Copy link
Copy Markdown

Adds an mpg123 project (libmpg123 1.33.7, built with its CMake port) and makes gst-plugins-good depend on it, so the GStreamer mpg123 plugin (mpg123audiodec) is built on Windows.

Why

  • The MP3 patents have expired, and since GStreamer 1.18 the mpg123 element lives in gst-plugins-good rather than -ugly.
  • Without libmpg123, a gvsbuild GStreamer has no MP3 decoder at all.

What

  • gvsbuild/projects/mpg123.py: the library only (BUILD_SHARED_LIBS=ON, BUILD_LIBOUT123=OFF; the CMake port builds the programs only on Unix). It installs mpg123.dll, libmpg123.pc and the licence (LGPL-2.1).
  • gst-plugins-good gets mpg123 as a dependency, the same way libvpx is handled. Meson's mpg123 option is auto, so it is picked up through pkg-config.

How it was tested

  • Ran gvsbuild build --ninja-opts -j2 --skip libvpx mpg123 gst-plugins-good on a windows-2022 runner (VS 2022) in a fork.
  • lib\gstreamer-1.0\gstmpg123.dll is produced and gst-inspect-1.0 mpg123 lists mpg123audiodec.
  • filesrc ! mpegaudioparse ! mpg123audiodec ! audioconvert ! fakesink decodes a test MP3.
  • Green run: https://github.com/gjsify/gvsbuild/actions/runs/36106661846 (the workflow is fork-only and not part of this PR).

Side note: --skip libvpx was needed because libvpx does not currently build on windows-2022 (mv: cannot stat 'x64/vpxmd.lib' in post_install). That happens without this change as well, and the CI here doesn't build it. Run with the failure: https://github.com/gjsify/gvsbuild/actions/runs/36099329626

I'm happy to keep the mpg123 project up to date.

🤖 Generated with Claude Code

JumpLink added a commit to gjsify/gjsify that referenced this pull request Sep 25, 2026
gjsify filed wingtk/gvsbuild#1849 (libmpg123 project, from the
gjsify/gvsbuild fork's add-mpg123 branch) so the win32 runtime bundle
can decode MP3 through mpg123audiodec like darwin already does.
gvsbuild only accepts a new library if the contributor keeps it
current, and the PR body takes that on — so this is a standing task
(bump version + sha256 on upstream mpg123 releases, answer breakage
reports), not a one-time patch. Record it in
status/upstream-patch-candidates.md, and update the open-todos entry
that used to say nobody had filed it.

Claude-Session: https://claude.ai/code/session_015AhJTvRNKM8BJrLm1TaADc
JumpLink added a commit to gjsify/gjsify that referenced this pull request Sep 25, 2026
gjsify filed wingtk/gvsbuild#1849 (libmpg123 project, from the
gjsify/gvsbuild fork's add-mpg123 branch) so the win32 runtime bundle
can decode MP3 through mpg123audiodec like darwin already does.
gvsbuild only accepts a new library if the contributor keeps it
current, and the PR body takes that on — so this is a standing task
(bump version + sha256 on upstream mpg123 releases, answer breakage
reports), not a one-time patch. Record it in
status/upstream-patch-candidates.md, and update the open-todos entry
that used to say nobody had filed it.

Claude-Session: https://claude.ai/code/session_015AhJTvRNKM8BJrLm1TaADc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant