summaryrefslogtreecommitdiff
path: root/libavcodec/libxvid.c
diff options
context:
space:
mode:
authorJames Almer <jamrial@gmail.com>2021-01-28 22:49:37 -0300
committerJames Almer <jamrial@gmail.com>2021-03-17 15:06:47 -0300
commit2101b99777860c853ca2321031eb3f4047dc5894 (patch)
tree2c9aa4c89973f114433631fcadb2cb75f9a96944 /libavcodec/libxvid.c
parent039ea9ec7b33bf9ae20efe36747be4712c6833f2 (diff)
avcodec/libxvid: use av_packet_alloc() to allocate packets
Signed-off-by: James Almer <jamrial@gmail.com>
Diffstat (limited to 'libavcodec/libxvid.c')
-rw-r--r--libavcodec/libxvid.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/libavcodec/libxvid.c b/libavcodec/libxvid.c
index dda8b94c4a..7dc6859571 100644
--- a/libavcodec/libxvid.c
+++ b/libavcodec/libxvid.c
@@ -684,10 +684,12 @@ FF_ENABLE_DEPRECATION_WARNINGS
/* Encode a dummy frame to get the extradata immediately */
if (x->quicktime_format) {
AVFrame *picture;
- AVPacket packet = {0};
+ AVPacket *packet;
int size, got_packet, ret;
- av_init_packet(&packet);
+ packet = av_packet_alloc();
+ if (!packet)
+ return AVERROR(ENOMEM);
picture = av_frame_alloc();
if (!picture)
@@ -695,6 +697,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
xerr = xvid_encore(NULL, XVID_ENC_CREATE, &xvid_enc_create, NULL);
if( xerr ) {
+ av_packet_free(&packet);
av_frame_free(&picture);
av_log(avctx, AV_LOG_ERROR, "Xvid: Could not create encoder reference\n");
return AVERROR_EXTERNAL;
@@ -703,6 +706,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
size = ((avctx->width + 1) & ~1) * ((avctx->height + 1) & ~1);
picture->data[0] = av_malloc(size + size / 2);
if (!picture->data[0]) {
+ av_packet_free(&packet);
av_frame_free(&picture);
return AVERROR(ENOMEM);
}
@@ -710,9 +714,8 @@ FF_ENABLE_DEPRECATION_WARNINGS
picture->data[2] = picture->data[1] + size / 4;
memset(picture->data[0], 0, size);
memset(picture->data[1], 128, size / 2);
- ret = xvid_encode_frame(avctx, &packet, picture, &got_packet);
- if (!ret && got_packet)
- av_packet_unref(&packet);
+ ret = xvid_encode_frame(avctx, packet, picture, &got_packet);
+ av_packet_free(&packet);
av_free(picture->data[0]);
av_frame_free(&picture);
xvid_encore(x->encoder_handle, XVID_ENC_DESTROY, NULL, NULL);