Usdx: Compiling fails because of ffmpeg library version checks

Created on 4 Aug 2020  路  6Comments  路  Source: UltraStar-Deluxe/USDX

When i recently updated my Arch Linux, i couldn't compile the recent USDX repo. When checking the errors I
noticed, that the checks for the ffmpeg libraries max versions failed. I've been wondering why there where such strict
checks and when i removed them like in my forked branch everything worked just fine. Checked also with multiple micros. Why are these checks there? Should i open a PR to remove them?

Actual behaviour

Compiling fails with error messages like:

USDX/src/lib/ffmpeg-4.0/avutil.pas(81,4) Error: User defined: Linked version of libavutil is not yet supported!

Expected behaviour

Compiles without error

Steps to reproduce

  1. On a current updated Arch Linux clone the repo.
  2. cd USDX
  3. ./autogen.sh
  4. ./configure
  5. make

Details

Provide some additional information:

  • USDX version: curent git master
  • Operating System + version: Arch Linux
  • ffmpeg 4.3.1-1

Most helpful comment

I'm working on it.

All 6 comments

those checks are there because whenever ffmpeg changes their headers, the translated headers in our project should be changed accordingly, too. Just blindly ignoring those changes will eventually result in very hard to track + analyze bugs.

In theory the version check in configure should be enough because ffmpeg nowadays follows strict rules to raise the version numbers in specific ways when ABI compatibility is broken.
In practice there is a single old code line in USDX that accesses a private structure element that regularly moves around.

In FFmpeg 4.0 on x86-64 AVCodec::flush is at offset 216. In 4.3 it is at 208. If you have a fix for #259, we can think about relaxing the version requirement.

As a workaround for Arch Linux users downgrade to ffmpeg 2:4.2.3-2 and put to IgnorePkg.

Yeah I will use that workaround for now. Thanks for all your quick replies.

on: Debian testing bullseye

same issue:
"Linked version of libavutil is not yet supported!"

I'm working on it.

Was this page helpful?
0 / 5 - 0 ratings