X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ftargaenc.c;h=290054de3728c98c3d60f65dff56f230da4ccdb9;hb=a853388d2fc5be848cca839a9fdf39a97c2d7b0e;hp=7679029643d56ead1e12d0dc3bcaa89d472eca4c;hpb=fb26d761676ffbf3394b767b9c199947c160c344;p=ffmpeg diff --git a/libavcodec/targaenc.c b/libavcodec/targaenc.c index 7679029643d..290054de372 100644 --- a/libavcodec/targaenc.c +++ b/libavcodec/targaenc.c @@ -21,6 +21,7 @@ #include +#include "libavutil/imgutils.h" #include "libavutil/internal.h" #include "libavutil/intreadwrite.h" #include "libavutil/pixdesc.h" @@ -84,7 +85,8 @@ static int targa_encode_frame(AVCodecContext *avctx, AVPacket *pkt, av_log(avctx, AV_LOG_ERROR, "image dimensions too large\n"); return AVERROR(EINVAL); } - picsize = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height); + picsize = av_image_get_buffer_size(avctx->pix_fmt, + avctx->width, avctx->height, 1); if ((ret = ff_alloc_packet(pkt, picsize + 45)) < 0) { av_log(avctx, AV_LOG_ERROR, "encoded frame too large\n"); return ret; @@ -150,29 +152,22 @@ static int targa_encode_frame(AVCodecContext *avctx, AVPacket *pkt, static av_cold int targa_encode_init(AVCodecContext *avctx) { - avctx->coded_frame = av_frame_alloc(); - if (!avctx->coded_frame) - return AVERROR(ENOMEM); - +#if FF_API_CODED_FRAME +FF_DISABLE_DEPRECATION_WARNINGS avctx->coded_frame->key_frame = 1; avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I; +FF_ENABLE_DEPRECATION_WARNINGS +#endif return 0; } -static av_cold int targa_encode_close(AVCodecContext *avctx) -{ - av_frame_free(&avctx->coded_frame); - return 0; -} - AVCodec ff_targa_encoder = { .name = "targa", .long_name = NULL_IF_CONFIG_SMALL("Truevision Targa image"), .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_TARGA, .init = targa_encode_init, - .close = targa_encode_close, .encode2 = targa_encode_frame, .pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_BGR24, AV_PIX_FMT_BGRA, AV_PIX_FMT_RGB555LE, AV_PIX_FMT_GRAY8,