All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions | Variables
gif.c File Reference

GIF encoder. More...

#include "libavutil/opt.h"
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "bytestream.h"
#include "internal.h"
#include "lzw.h"
#include "gif.h"
#include "put_bits.h"

Go to the source code of this file.

Data Structures

struct  GIFContext


#define OFFSET(x)   offsetof(GIFContext, x)


enum  { GF_OFFSETTING = 1<<0, GF_TRANSDIFF = 1<<1 }


static int pick_palette_entry (const uint8_t *buf, int linesize, int w, int h)
static int gif_image_write_image (AVCodecContext *avctx, uint8_t **bytestream, uint8_t *end, const uint32_t *palette, const uint8_t *buf, const int linesize, AVPacket *pkt)
static av_cold int gif_encode_init (AVCodecContext *avctx)
static int get_palette_transparency_index (const uint32_t *palette)
static int gif_encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet)
static int gif_encode_close (AVCodecContext *avctx)


static const AVOption gif_options []
static const AVClass gif_class
AVCodec ff_gif_encoder

Detailed Description

GIF encoder.

See Also

Definition in file gif.c.

Macro Definition Documentation


Definition at line 31 of file gif.c.

#define OFFSET (   x)    offsetof(GIFContext, x)

Definition at line 329 of file gif.c.

Definition at line 330 of file gif.c.

Enumeration Type Documentation

anonymous enum

Definition at line 55 of file gif.c.

Function Documentation

static int pick_palette_entry ( const uint8_t buf,
int  linesize,
int  w,
int  h 

Definition at line 60 of file gif.c.

Referenced by gif_image_write_image().

static int gif_image_write_image ( AVCodecContext avctx,
uint8_t **  bytestream,
uint8_t end,
const uint32_t *  palette,
const uint8_t buf,
const int  linesize,
AVPacket pkt 

Definition at line 76 of file gif.c.

Referenced by gif_encode_frame().

static av_cold int gif_encode_init ( AVCodecContext avctx)

Definition at line 216 of file gif.c.

static int get_palette_transparency_index ( const uint32_t *  palette)

Definition at line 246 of file gif.c.

Referenced by gif_encode_frame().

static int gif_encode_frame ( AVCodecContext avctx,
AVPacket pkt,
const AVFrame pict,
int *  got_packet 

Definition at line 264 of file gif.c.

static int gif_encode_close ( AVCodecContext avctx)

Definition at line 318 of file gif.c.

Variable Documentation

const AVOption gif_options[]
Initial value:
= {
{ "gifflags", "set GIF flags", OFFSET(flags), AV_OPT_TYPE_FLAGS, {.i64 = GF_OFFSETTING|GF_TRANSDIFF}, 0, INT_MAX, FLAGS, "flags" },
{ "offsetting", "enable picture offsetting", 0, AV_OPT_TYPE_CONST, {.i64=GF_OFFSETTING}, INT_MIN, INT_MAX, FLAGS, "flags" },
{ "transdiff", "enable transparency detection between frames", 0, AV_OPT_TYPE_CONST, {.i64=GF_TRANSDIFF}, INT_MIN, INT_MAX, FLAGS, "flags" },
{ NULL }
#define NULL
Definition: coverity.c:32
#define FLAGS
Definition: gif.c:330
#define OFFSET(x)
Definition: gif.c:329
static int flags
Definition: cpu.c:47

Definition at line 331 of file gif.c.

const AVClass gif_class
Initial value:
= {
.class_name = "GIF encoder",
.item_name = av_default_item_name,
.option = gif_options,
Definition: version.h:62
static const AVOption gif_options[]
Definition: gif.c:331

Definition at line 338 of file gif.c.

AVCodec ff_gif_encoder
Initial value:
= {
.name = "gif",
.long_name = NULL_IF_CONFIG_SMALL("GIF (Graphics Interchange Format)"),
.priv_data_size = sizeof(GIFContext),
.encode2 = gif_encode_frame,
.close = gif_encode_close,
.pix_fmts = (const enum AVPixelFormat[]){
.priv_class = &gif_class,
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
static int gif_encode_close(AVCodecContext *avctx)
Definition: gif.c:318
static const AVClass gif_class
Definition: gif.c:338
packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
Definition: pixfmt.h:87
8 bit with AV_PIX_FMT_RGB32 palette
Definition: pixfmt.h:74
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:175
Definition: gif.c:42
packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)
Definition: pixfmt.h:90
packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
Definition: pixfmt.h:85
static int gif_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet)
Definition: gif.c:264
static enum AVPixelFormat pix_fmts[]
Definition: libkvazaar.c:209
Y , 8bpp.
Definition: pixfmt.h:71
packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)
Definition: pixfmt.h:88
static av_cold int gif_encode_init(AVCodecContext *avctx)
Definition: gif.c:216
Pixel format.
Definition: pixfmt.h:61

Definition at line 345 of file gif.c.