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?
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!
Compiles without error
Provide some additional information:
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.
Most helpful comment
I'm working on it.