avviddec: Enforce allocate new AVFrame per input frame
authorSeungha Yang <seungha.yang@navercorp.com>
Wed, 23 Oct 2019 15:25:28 +0000 (00:25 +0900)
committerTim-Philipp Müller <tim@centricular.com>
Thu, 24 Oct 2019 09:28:32 +0000 (10:28 +0100)
commit2e8296620bc22f97c34f876ab62902e7c3d89601
tree7a51100aedb1c338d2a6e180ebf9369801a6aee3
parentfe08c26641592f058b6fa0da9a1f86fc0b24cb0c
avviddec: Enforce allocate new AVFrame per input frame

... if ffmpeg would reuse the allocated AVBuffer. Reused AVFrame by
the ffmpeg seems to break our decoding flow since the reused AVFrame
holds the initial opaque data (GstVideoCodecFrame in this case), so
we couldn't trace the our in/out frames.
To enforce get_buffer() call per output frame, hold another reference
to the AVBuffer in order to mark the AVBuffer as not writable.

Fixes: https://gitlab.freedesktop.org/gstreamer/gst-libav/issues/62
ext/libav/gstavviddec.c