avformat/gif: simplify gif_image_write_header() prototype
authorClément Bœsch <u@pkh.me>
Sat, 24 Jan 2015 15:01:39 +0000 (16:01 +0100)
committerClément Bœsch <u@pkh.me>
Sat, 14 Feb 2015 19:48:50 +0000 (20:48 +0100)
libavformat/gif.c

index e817121..b4c5e8b 100644 (file)
 #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);