avformat/gif: simplify gif_image_write_header() prototype
This commit is contained in:
parent
088dfd3ff1
commit
adb9b235b6
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user