#include "avcodec.h"
#include "internal.h"
#include "bytestream.h"
#include "dsputil.h"
#include "png.h"
#include "libavutil/avassert.h"
#include <zlib.h>
Go to the source code of this file.
Data Structures | |
struct | PNGEncContext |
Defines | |
#define | IOBUF_SIZE 4096 |
Functions | |
static void | png_get_interlaced_row (uint8_t *dst, int row_size, int bits_per_pixel, int pass, const uint8_t *src, int width) |
static void | sub_png_paeth_prediction (uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp) |
static void | png_filter_row (DSPContext *dsp, uint8_t *dst, int filter_type, uint8_t *src, uint8_t *top, int size, int bpp) |
static uint8_t * | png_choose_filter (PNGEncContext *s, uint8_t *dst, uint8_t *src, uint8_t *top, int size, int bpp) |
static void | png_write_chunk (uint8_t **f, uint32_t tag, const uint8_t *buf, int length) |
static int | png_write_row (PNGEncContext *s, const uint8_t *data, int size) |
static int | encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet) |
static av_cold int | png_enc_init (AVCodecContext *avctx) |
Variables | |
AVCodec | ff_png_encoder |
#define IOBUF_SIZE 4096 |
static int encode_frame | ( | AVCodecContext * | avctx, | |
AVPacket * | pkt, | |||
const AVFrame * | pict, | |||
int * | got_packet | |||
) | [static] |
static av_cold int png_enc_init | ( | AVCodecContext * | avctx | ) | [static] |
static int png_write_row | ( | PNGEncContext * | s, | |
const uint8_t * | data, | |||
int | size | |||
) | [static] |
Initial value:
{ .name = "png", .type = AVMEDIA_TYPE_VIDEO, .id = AV_CODEC_ID_PNG, .priv_data_size = sizeof(PNGEncContext), .init = png_enc_init, .encode2 = encode_frame, .capabilities = CODEC_CAP_FRAME_THREADS | CODEC_CAP_INTRA_ONLY, .pix_fmts = (const enum PixelFormat[]){ PIX_FMT_RGB24, PIX_FMT_RGBA, PIX_FMT_RGB48BE, PIX_FMT_RGBA64BE, PIX_FMT_PAL8, PIX_FMT_GRAY8, PIX_FMT_GRAY8A, PIX_FMT_GRAY16BE, PIX_FMT_MONOBLACK, PIX_FMT_NONE }, .long_name = NULL_IF_CONFIG_SMALL("PNG (Portable Network Graphics) image"), }