#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "bytestream.h"
#include "internal.h"
#include "png.h"
#include "pngdsp.h"
#include <zlib.h>
Go to the source code of this file.
|
static void | png_put_interlaced_row (uint8_t *dst, int width, int bits_per_pixel, int pass, int color_type, const uint8_t *src) |
|
void | ff_add_png_paeth_prediction (uint8_t *dst, uint8_t *src, uint8_t *top, int w, int bpp) |
|
static void | png_filter_row (PNGDSPContext *dsp, uint8_t *dst, int filter_type, uint8_t *src, uint8_t *last, int size, int bpp) |
|
static av_always_inline void | convert_to_rgb32_loco (uint8_t *dst, const uint8_t *src, int width, int loco) |
|
static void | convert_to_rgb32 (uint8_t *dst, const uint8_t *src, int width, int loco) |
|
static void | deloco_rgb24 (uint8_t *dst, int size) |
|
static void | png_handle_row (PNGDecContext *s) |
|
static int | png_decode_idat (PNGDecContext *s, int length) |
|
static int | decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt) |
|
static av_cold int | png_dec_init (AVCodecContext *avctx) |
|
static av_cold int | png_dec_end (AVCodecContext *avctx) |
|
#define OP_AVG |
( |
|
x, |
|
|
|
s, |
|
|
|
l |
|
) |
| (((x + l) >> 1) + s) & 0xff |
#define OP_SUB |
( |
|
x, |
|
|
|
s, |
|
|
|
l |
|
) |
| x+s |
#define UNROLL1 |
( |
|
bpp, |
|
|
|
op |
|
) |
| |
Value:
if(bpp >= 2)
g = dst[1];\
if(bpp >= 3)
b = dst[2];\
if(bpp >= 4)
a = dst[3];\
dst[i+0] =
r =
op(
r, src[i+0], last[i+0]);
\
dst[i+1] =
g =
op(
g, src[i+1], last[i+1]);\
dst[i+2] =
b =
op(
b, src[i+2], last[i+2]);\
dst[i+3] =
a =
op(
a, src[i+3], last[i+3]);\
}\
}
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
if(!(ptr_align%ac->ptr_align)&&samples_align >=aligned_len)
Definition at line 163 of file pngdec.c.
#define UNROLL_FILTER |
( |
|
op | ) |
|
Value:
for (j = 0; j < bpp; j++)\
dst[i+j] =
op(dst[i+j-bpp], src[i+j], last[i+j]);\
}\
}
static int op(uint8_t **dst, const uint8_t *dst_end, GetByteContext *gb, int pixel, int count, int *x, int width, int linesize)
Perform decode operation.
Definition at line 179 of file pngdec.c.
Referenced by png_filter_row().
static void png_put_interlaced_row |
( |
uint8_t * |
dst, |
|
|
int |
width, |
|
|
int |
bits_per_pixel, |
|
|
int |
pass, |
|
|
int |
color_type, |
|
|
const uint8_t * |
src |
|
) |
| |
|
static |
Initial value:= {
.name = "png",
}
static int decode(MimicContext *ctx, int quality, int num_coeffs, int is_iframe)
static int init(AVCodecParserContext *s)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static av_cold int png_dec_init(AVCodecContext *avctx)
static void close(AVCodecParserContext *s)
struct PNGDecContext PNGDecContext
static av_cold int png_dec_end(AVCodecContext *avctx)
static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Definition at line 657 of file pngdec.c.
Initial value:= {
0xff, 0xff, 0x0f, 0xcc, 0x33, 0xff, 0x55,
}
Definition at line 69 of file pngdec.c.
Referenced by png_handle_row().