diff options
author | wm4 <wm4@nowhere> | 2020-09-01 21:25:34 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2020-09-01 21:28:13 +0200 |
commit | 99cd22af01be30db7462ab781c768dae7ddb2174 (patch) | |
tree | 41b6596d6261234e129800ca5d8436c2322d8816 /Copyright | |
parent | d96e2c731315daa3157f4892cc70267abf4d1a21 (diff) | |
download | mpv-99cd22af01be30db7462ab781c768dae7ddb2174.tar.bz2 mpv-99cd22af01be30db7462ab781c768dae7ddb2174.tar.xz |
audio: fix AVFrame allocation (crash with opus encoding)
AVFrame doesn't have public code for pool allocation, so mpv does it
manually. AVFrame allocation is very tricky, so we added a bug.
This crashed with libopus encoding, but not some other audio codecs,
because the libopus libavcodec wrapper accesses AVFrame.data. Most code
tries to avoid accessing AVFrame.data and uses AVFrame.extended_data,
because using the former would subtly corrupt memory on more than 8
channels. The fact that this problem manifested only now shows that most
AVFrame consuming FFmpeg code indeed uses extended_data for audio.
Diffstat (limited to 'Copyright')
0 files changed, 0 insertions, 0 deletions