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.
|
static void | shrink_palette (const uint32_t *src, uint8_t *map, uint32_t *dst, size_t *palette_count) |
|
static void | remap_frame_to_palette (const uint8_t *src, int src_linesize, uint8_t *dst, int dst_linesize, int w, int h, uint8_t *map) |
|
static int | is_image_translucent (AVCodecContext *avctx, const uint8_t *buf, const int linesize) |
|
static int | get_palette_transparency_index (const uint32_t *palette) |
|
static int | pick_palette_entry (const uint8_t *buf, int linesize, int w, int h) |
|
static void | gif_crop_translucent (AVCodecContext *avctx, const uint8_t *buf, const int linesize, int *width, int *height, int *x_start, int *y_start) |
|
static void | gif_crop_opaque (AVCodecContext *avctx, const uint32_t *palette, const uint8_t *buf, const int linesize, int *width, int *height, int *x_start, int *y_start) |
|
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 | gif_encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet) |
|
static int | gif_encode_close (AVCodecContext *avctx) |
|
◆ BITSTREAM_WRITER_LE
#define BITSTREAM_WRITER_LE |
Definition at line 33 of file gif.c.
◆ DEFAULT_TRANSPARENCY_INDEX
#define DEFAULT_TRANSPARENCY_INDEX 0x1f |
Definition at line 44 of file gif.c.
◆ OFFSET
◆ FLAGS
◆ anonymous enum
Enumerator |
---|
GF_OFFSETTING | |
GF_TRANSDIFF | |
Definition at line 62 of file gif.c.
◆ shrink_palette()
static void shrink_palette |
( |
const uint32_t * |
src, |
|
|
uint8_t * |
map, |
|
|
uint32_t * |
dst, |
|
|
size_t * |
palette_count |
|
) |
| |
|
static |
Definition at line 67 of file gif.c.
◆ remap_frame_to_palette()
Definition at line 90 of file gif.c.
◆ is_image_translucent()
Definition at line 99 of file gif.c.
◆ get_palette_transparency_index()
static int get_palette_transparency_index |
( |
const uint32_t * |
palette | ) |
|
|
static |
◆ pick_palette_entry()
◆ gif_crop_translucent()
◆ gif_crop_opaque()
◆ gif_image_write_image()
◆ gif_encode_init()
◆ gif_encode_frame()
◆ gif_encode_close()
◆ gif_options
Initial value:= {
{
"global_palette",
"write a palette to the global gif header where feasible",
OFFSET(use_global_palette),
AV_OPT_TYPE_BOOL, {.i64=1}, 0, 1,
FLAGS },
}
#define flags(name, subs,...)
Definition at line 538 of file gif.c.
◆ gif_class
Initial value:= {
.class_name = "GIF encoder",
}
const char * av_default_item_name(void *ptr)
Return the context name.
#define LIBAVUTIL_VERSION_INT
static const AVOption gif_options[]
Definition at line 547 of file gif.c.
◆ ff_gif_encoder
Initial value:= {
.name = "gif",
},
}
static av_cold int init(AVCodecContext *avctx)
static int gif_encode_frame(AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet)
static av_cold int gif_encode_init(AVCodecContext *avctx)
static const AVClass gif_class
static int gif_encode_close(AVCodecContext *avctx)
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification.
static enum AVPixelFormat pix_fmts[]
AVPixelFormat
Pixel format.
@ AV_PIX_FMT_GRAY8
Y , 8bpp.
@ AV_PIX_FMT_RGB8
packed RGB 3:3:2, 8bpp, (msb)2R 3G 3B(lsb)
@ AV_PIX_FMT_BGR8
packed RGB 3:3:2, 8bpp, (msb)2B 3G 3R(lsb)
@ AV_PIX_FMT_RGB4_BYTE
packed RGB 1:2:1, 8bpp, (msb)1R 2G 1B(lsb)
@ AV_PIX_FMT_BGR4_BYTE
packed RGB 1:2:1, 8bpp, (msb)1B 2G 1R(lsb)
@ AV_PIX_FMT_PAL8
8 bits with AV_PIX_FMT_RGB32 palette
Definition at line 554 of file gif.c.