diff options
Diffstat (limited to 'libavcodec/targaenc.c')
-rw-r--r-- | libavcodec/targaenc.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/libavcodec/targaenc.c b/libavcodec/targaenc.c index 108e1485e4..d4483ec398 100644 --- a/libavcodec/targaenc.c +++ b/libavcodec/targaenc.c @@ -170,11 +170,31 @@ static int targa_encode_frame(AVCodecContext *avctx, AVPacket *pkt, return 0; } +static av_cold int targa_encode_init(AVCodecContext *avctx) +{ + avctx->coded_frame = av_frame_alloc(); + if (!avctx->coded_frame) + return AVERROR(ENOMEM); + + avctx->coded_frame->key_frame = 1; + avctx->coded_frame->pict_type = AV_PICTURE_TYPE_I; + + 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, AV_PIX_FMT_PAL8, |