avformat/gif: simplify gif_image_write_header() prototype

This commit is contained in:
Clément Bœsch 2015-01-24 16:01:39 +01:00
parent 088dfd3ff1
commit adb9b235b6

View File

@ -28,13 +28,12 @@
#include "libavutil/log.h"
#include "libavutil/opt.h"
static int gif_image_write_header(AVFormatContext *s, int width, int height,
static int gif_image_write_header(AVIOContext *pb, const AVCodecContext *avctx,
int loop_count, uint32_t *palette)
{
AVIOContext *pb = s->pb;
AVRational sar = s->streams[0]->codec->sample_aspect_ratio;
int i;
int64_t aspect = 0;
const AVRational sar = avctx->sample_aspect_ratio;
if (sar.num > 0 && sar.den > 0) {
aspect = sar.num * 64LL / sar.den - 15;
@ -44,8 +43,8 @@ static int gif_image_write_header(AVFormatContext *s, int width, int height,
avio_write(pb, "GIF", 3);
avio_write(pb, "89a", 3);
avio_wl16(pb, width);
avio_wl16(pb, height);
avio_wl16(pb, avctx->width);
avio_wl16(pb, avctx->height);
if (palette) {
avio_w8(pb, 0xf7); /* flags: global clut, 256 entries */
@ -89,7 +88,6 @@ static int gif_write_header(AVFormatContext *s)
{
GIFContext *gif = s->priv_data;
AVCodecContext *video_enc;
int width, height;
uint32_t palette[AVPALETTE_COUNT];
if (s->nb_streams != 1 ||
@ -101,15 +99,13 @@ static int gif_write_header(AVFormatContext *s)
}
video_enc = s->streams[0]->codec;
width = video_enc->width;
height = video_enc->height;
avpriv_set_pts_info(s->streams[0], 64, 1, 100);
if (avpriv_set_systematic_pal2(palette, video_enc->pix_fmt) < 0) {
av_assert0(video_enc->pix_fmt == AV_PIX_FMT_PAL8);
gif_image_write_header(s, width, height, gif->loop, NULL);
gif_image_write_header(s->pb, video_enc, gif->loop, NULL);
} else {
gif_image_write_header(s, width, height, gif->loop, palette);
gif_image_write_header(s->pb, video_enc, gif->loop, palette);
}
avio_flush(s->pb);