mpv accesses private fields from AVFrame struct directly #3295
Labels
Comments
|
No, this would be incompatible with Libav. Please make ffmpeg eat their own dumb bullshit. |
|
Actually that's not true but I still don't care. |
|
I realize now that the "affected" mpv source code only exists at all because the need to access the channels field (which doesn't exist in Libav) is a GOD DAMN API INCOMPATIBILITY to Libav. If any ffmpeg dev reads this: really guys, fix your own bugs. |
|
Fixed via dcfde29. |
This issue was closed.
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
git head commit e40851e, https://github.com/mpv-player/mpv/blob/master/audio/audio.c#L351 and https://github.com/mpv-player/mpv/blob/master/audio/audio.c#L352 and https://github.com/mpv-player/mpv/blob/master/audio/audio.c#L414 should be using av_frame_get_channels(avframe) instead as stated in the field's doxy.
This apparently broke mpv audio playback as reported in https://trac.ffmpeg.org/ticket/5676 if you compile mpv using ffmpeg 3.0 shared libraries but use ffmpeg 3.1 shared libraries at runtime, since avframe->channels has a different offset (A new public field was added above it).
I didn't check if there are other similar usage of fields marked as no direct access.
The text was updated successfully, but these errors were encountered: