aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-07-18 19:26:58 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@outlook.com>2022-07-18 21:10:16 +0200
commitd72a671c601ae1c7969ab17e2f931b6807add3b9 (patch)
tree6280f7ef8a5a36594fd020ac517e25b11faf3cfb
parent425b309fa43236f4b7c098c7829b70a421fc1dd7 (diff)
downloadffmpeg-d72a671c601ae1c7969ab17e2f931b6807add3b9.tar.gz
avcodec/wrapped_avframe: Don't presume AVPacket to be writable
It need not be writable; in fact, it is often not writable even if the packet sent to the decoder was writable, because the generic code calls av_packet_ref() on it. It is never writable if a user drains the decoder after every packet, because in this case the decode callback is called from avcodec_send_packet(). Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r--libavcodec/wrapped_avframe.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/libavcodec/wrapped_avframe.c b/libavcodec/wrapped_avframe.c
index 3d2137ccbf..def29a9060 100644
--- a/libavcodec/wrapped_avframe.c
+++ b/libavcodec/wrapped_avframe.c
@@ -92,7 +92,9 @@ static int wrapped_avframe_decode(AVCodecContext *avctx, AVFrame *out,
in = (AVFrame*)pkt->data;
- av_frame_move_ref(out, in);
+ err = av_frame_ref(out, in);
+ if (err < 0)
+ return err;
err = ff_decode_frame_props(avctx, out);
if (err < 0)