X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fgif.c;h=a5d81fbbcf9ae4006c0313d441e3803a5446b9cd;hb=08f87a9c99b4625135f31bb25e018ba5505d7f07;hp=c82d174f1ac2f8770bb32ecd8cb8d7f4b4938177;hpb=a7702890bd470fc1683578609b7e1c5a2acfcd94;p=ffmpeg diff --git a/libavformat/gif.c b/libavformat/gif.c index c82d174f1ac..a5d81fbbcf9 100644 --- a/libavformat/gif.c +++ b/libavformat/gif.c @@ -1,19 +1,21 @@ /* - * Animated GIF encoder + * Animated GIF muxer * Copyright (c) 2000 Fabrice Bellard. * - * This library is free software; you can redistribute it and/or + * This file is part of FFmpeg. + * + * 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 of the License, or (at your option) any later version. + * version 2.1 of the License, or (at your option) any later version. * - * This library 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 this library; 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 */ @@ -339,8 +341,10 @@ static int gif_write_header(AVFormatContext *s) // rate = video_enc->time_base.den; } - /* XXX: is it allowed ? seems to work so far... */ - video_enc->pix_fmt = PIX_FMT_RGB24; + if (video_enc->pix_fmt != PIX_FMT_RGB24) { + av_log(s, AV_LOG_ERROR, "ERROR: gif only handles the rgb24 pixel format. Use -pix_fmt rgb24.\n"); + return AVERROR(EIO); + } gif_image_write_header(pb, width, height, loop_count, NULL); @@ -401,20 +405,7 @@ static int gif_write_trailer(AVFormatContext *s) return 0; } -/* better than nothing gif image writer */ -int gif_write(ByteIOContext *pb, AVImageInfo *info) -{ - gif_image_write_header(pb, info->width, info->height, AVFMT_NOOUTPUTLOOP, - (uint32_t *)info->pict.data[1]); - gif_image_write_image(pb, 0, 0, info->width, info->height, - info->pict.data[0], info->pict.linesize[0], - PIX_FMT_PAL8); - put_byte(pb, 0x3b); - put_flush_packet(pb); - return 0; -} - -static AVOutputFormat gif_oformat = { +AVOutputFormat gif_muxer = { "gif", "GIF Animation", "image/gif", @@ -426,12 +417,3 @@ static AVOutputFormat gif_oformat = { gif_write_packet, gif_write_trailer, }; - -extern AVInputFormat gif_iformat; - -int gif_init(void) -{ - av_register_output_format(&gif_oformat); - av_register_input_format(&gif_iformat); - return 0; -}