diff options
Diffstat (limited to 'libavcodec/targaenc.c')
-rw-r--r-- | libavcodec/targaenc.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/libavcodec/targaenc.c b/libavcodec/targaenc.c index 0ee7fed..833b563 100644 --- a/libavcodec/targaenc.c +++ b/libavcodec/targaenc.c @@ -2,20 +2,20 @@ * Targa (.tga) image encoder * Copyright (c) 2007 Bobby Bingham * - * This file is part of Libav. + * This file is part of FFmpeg. * - * Libav is free software; you can redistribute it and/or + * FFmpeg is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public * License as published by the Free Software Foundation; either * version 2.1 of the License, or (at your option) any later version. * - * Libav is distributed in the hope that it will be useful, + * FFmpeg is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public - * License along with Libav; if not, write to the Free Software + * License along with FFmpeg; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ @@ -86,10 +86,8 @@ static int targa_encode_frame(AVCodecContext *avctx, AVPacket *pkt, return AVERROR(EINVAL); } picsize = avpicture_get_size(avctx->pix_fmt, avctx->width, avctx->height); - if ((ret = ff_alloc_packet(pkt, picsize + 45)) < 0) { - av_log(avctx, AV_LOG_ERROR, "encoded frame too large\n"); + if ((ret = ff_alloc_packet2(avctx, pkt, picsize + 45)) < 0) return ret; - } /* zero out the header and only set applicable fields */ memset(pkt->data, 0, 12); @@ -98,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: |