diff options
Diffstat (limited to 'libavcodec/sgienc.c')
-rw-r--r-- | libavcodec/sgienc.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/libavcodec/sgienc.c b/libavcodec/sgienc.c index bfc0995..2f45eb3 100644 --- a/libavcodec/sgienc.c +++ b/libavcodec/sgienc.c @@ -2,20 +2,20 @@ * SGI image encoder * Todd Kirby <doubleshot@pacbell.net> * - * 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 */ @@ -33,6 +33,7 @@ static av_cold int encode_init(AVCodecContext *avctx) if (avctx->width > 65535 || avctx->height > 65535) { av_log(avctx, AV_LOG_ERROR, "Unsupported resolution %dx%d.\n", avctx->width, avctx->height); + av_log(avctx, AV_LOG_ERROR, "SGI does not support resolutions above 65535x65535\n"); return AVERROR_INVALIDDATA; } @@ -113,10 +114,8 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, else // assume ff_rl_encode() produces at most 2x size of input length += tablesize * 2 + depth * height * (2 * width + 1); - if ((ret = ff_alloc_packet(pkt, bytes_per_channel * length)) < 0) { - av_log(avctx, AV_LOG_ERROR, "Error getting output packet of size %d.\n", length); + if ((ret = ff_alloc_packet2(avctx, pkt, bytes_per_channel * length)) < 0) return ret; - } buf = pkt->data; end_buf = pkt->data + pkt->size; @@ -154,7 +153,7 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, /* Make an intermediate consecutive buffer. */ if (!(encode_buf = av_malloc(width))) - return -1; + return AVERROR(ENOMEM); for (z = 0; z < depth; z++) { in_buf = p->data[0] + p->linesize[0] * (height - 1) + z; @@ -184,13 +183,15 @@ static int encode_frame(AVCodecContext *avctx, AVPacket *pkt, for (y = 0; y < height; y++) { for (x = 0; x < width * depth; x += depth) - if (bytes_per_channel == 1) + if (bytes_per_channel == 1) { bytestream_put_byte(&buf, in_buf[x]); - else - if (put_be) + } else { + if (put_be) { bytestream_put_be16(&buf, ((uint16_t *)in_buf)[x]); - else + } else { bytestream_put_le16(&buf, ((uint16_t *)in_buf)[x]); + } + } in_buf -= p->linesize[0]; } |