X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Ftargaenc.c;h=833b563e79be83a29cf4146a58cf3712b8ba3e56;hb=5520df6a8f13fed175f74a00893775bc218a43b4;hp=8056685b364736ae395d6cc0e0695010ee747f30;hpb=6999f8bcf56bb167124bf85bdaa89090acdd5d9c;p=ffmpeg diff --git a/libavcodec/targaenc.c b/libavcodec/targaenc.c index 8056685b364..833b563e79b 100644 --- a/libavcodec/targaenc.c +++ b/libavcodec/targaenc.c @@ -96,13 +96,16 @@ static int targa_encode_frame(AVCodecContext *avctx, AVPacket *pkt, /* image descriptor byte: origin is always top-left, bits 0-3 specify alpha */ pkt->data[17] = 0x20 | (avctx->pix_fmt == PIX_FMT_BGRA ? 8 : 0); + avctx->bits_per_coded_sample = av_get_bits_per_pixel(&av_pix_fmt_descriptors[avctx->pix_fmt]); switch(avctx->pix_fmt) { case PIX_FMT_GRAY8: pkt->data[2] = TGA_BW; /* uncompressed grayscale image */ + avctx->bits_per_coded_sample = 0x28; pkt->data[16] = 8; /* bpp */ break; case PIX_FMT_RGB555LE: pkt->data[2] = TGA_RGB; /* uncompresses true-color image */ + avctx->bits_per_coded_sample = pkt->data[16] = 16; /* bpp */ break; case PIX_FMT_BGR24: @@ -160,12 +163,15 @@ static av_cold int targa_encode_init(AVCodecContext *avctx) } AVCodec ff_targa_encoder = { - .name = "targa", - .type = AVMEDIA_TYPE_VIDEO, - .id = CODEC_ID_TARGA, + .name = "targa", + .type = AVMEDIA_TYPE_VIDEO, + .id = CODEC_ID_TARGA, .priv_data_size = sizeof(TargaContext), - .init = targa_encode_init, - .encode2 = targa_encode_frame, - .pix_fmts= (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_BGRA, PIX_FMT_RGB555LE, PIX_FMT_GRAY8, PIX_FMT_NONE}, + .init = targa_encode_init, + .encode2 = targa_encode_frame, + .pix_fmts = (const enum PixelFormat[]){ + PIX_FMT_BGR24, PIX_FMT_BGRA, PIX_FMT_RGB555LE, PIX_FMT_GRAY8, + PIX_FMT_NONE + }, .long_name= NULL_IF_CONFIG_SMALL("Truevision Targa image"), };