diff options
author | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-09-03 23:47:51 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@outlook.com> | 2021-10-03 20:50:50 +0200 |
commit | 9190302b2e6fb69e8fd7fb1c594857be016ed4b2 (patch) | |
tree | 7357b67e6c2423b8da62e122d1bc7fdb293f0d9f | |
parent | e9182820ad30dd7f68634822a03010408d90988c (diff) | |
download | ffmpeg-9190302b2e6fb69e8fd7fb1c594857be016ed4b2.tar.gz |
examples/qsvdec: Don't use stack packet
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
-rw-r--r-- | doc/examples/qsvdec.c | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/doc/examples/qsvdec.c b/doc/examples/qsvdec.c index 571d868f93..b662ae91c3 100644 --- a/doc/examples/qsvdec.c +++ b/doc/examples/qsvdec.c @@ -113,7 +113,7 @@ int main(int argc, char **argv) AVCodecContext *decoder_ctx = NULL; const AVCodec *decoder; - AVPacket pkt = { 0 }; + AVPacket *pkt = NULL; AVFrame *frame = NULL, *sw_frame = NULL; AVIOContext *output_ctx = NULL; @@ -200,27 +200,26 @@ int main(int argc, char **argv) frame = av_frame_alloc(); sw_frame = av_frame_alloc(); - if (!frame || !sw_frame) { + pkt = av_packet_alloc(); + if (!frame || !sw_frame || !pkt) { ret = AVERROR(ENOMEM); goto finish; } /* actual decoding */ while (ret >= 0) { - ret = av_read_frame(input_ctx, &pkt); + ret = av_read_frame(input_ctx, pkt); if (ret < 0) break; - if (pkt.stream_index == video_st->index) - ret = decode_packet(decoder_ctx, frame, sw_frame, &pkt, output_ctx); + if (pkt->stream_index == video_st->index) + ret = decode_packet(decoder_ctx, frame, sw_frame, pkt, output_ctx); - av_packet_unref(&pkt); + av_packet_unref(pkt); } /* flush the decoder */ - pkt.data = NULL; - pkt.size = 0; - ret = decode_packet(decoder_ctx, frame, sw_frame, &pkt, output_ctx); + ret = decode_packet(decoder_ctx, frame, sw_frame, NULL, output_ctx); finish: if (ret < 0) { @@ -233,6 +232,7 @@ finish: av_frame_free(&frame); av_frame_free(&sw_frame); + av_packet_free(&pkt); avcodec_free_context(&decoder_ctx); |