Skip to content

decord: add build-decord.yml for riscv64 wheels - #1736

Open
luhenry wants to merge 1 commit into
mainfrom
decord
Open

decord: add build-decord.yml for riscv64 wheels#1736
luhenry wants to merge 1 commit into
mainfrom
decord

Conversation

@luhenry

@luhenry luhenry commented Sep 10, 2026

Copy link
Copy Markdown
Member

Compiles libdecord.so, a ctypes-loaded video/audio decoder built against FFmpeg, then packages it as a py3-none wheel. Upstream publishes no riscv64 wheel.

Mirrors upstream's pypi.yml manylinux job and tools/build_manylinux2010.sh.

Differs from upstream

  • FFmpeg 6.1.6 built without --enable-gpl/--enable-nonfree/libx264/libvpx - decord only ever decodes
  • FFmpeg 6.1.6, not upstream's 4.1.6 - the first FFmpeg release with riscv64 support
  • Wheel retagged py3-none via wheel tags after building, matching upstream's own hand-renamed tag

Testing

  • same as upstream (tests/python/unittests/test_video_reader.py)

License: Wheel bundles LGPL-2.1+ FFmpeg shared libraries; upstream ships no licence text for them, so the build adds one.

Built on cp312.

Builds libdecord.so against a from-source LGPL FFmpeg 6.1.6 (no
--enable-gpl/libx264/libvpx: decord only ever decodes), then retags
the wheel py3-none since libdecord.so is loaded via ctypes. FFmpeg is
built with its full default library set (avdevice included): passing
-DFFMPEG_DIR to decord's CMakeLists hardcodes an unconditional link
against libavdevice.so, unlike the pkg-config path, which treats it
as optional.

Two small patches fix FFmpeg API drift between decord's own pin
(4.1.6, which predates riscv64 support entirely) and 6.1.6: bsf.h
moved out of avcodec.h, and av_find_best_stream() now fills a
const AVCodec**.
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