FFmpeg
|
#include "libavutil/avassert.h"
#include "libavutil/common.h"
#include "libavutil/opt.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "encode.h"
#include "put_bits.h"
Go to the source code of this file.
Data Structures | |
struct | RpzaContext |
struct | rgb |
struct | BlockInfo |
Macros | |
#define | SQR(x) ((x) * (x)) |
#define | GET_CHAN(color, chan) (((color) >> ((chan) * 5) & 0x1F) * 8) |
#define | R(color) GET_CHAN(color, RED) |
#define | G(color) GET_CHAN(color, GREEN) |
#define | B(color) GET_CHAN(color, BLUE) |
#define | OFFSET(x) offsetof(RpzaContext, x) |
#define | VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM |
Enumerations | |
enum | channel_offset { RED = 2, GREEN = 1, BLUE = 0 } |
Functions | |
static void | get_colors (const uint8_t *min, const uint8_t *max, uint8_t color4[4][3]) |
static int | get_block_info (BlockInfo *bi, int block, int prev_frame) |
static uint16_t | rgb24_to_rgb555 (const uint8_t *rgb24) |
static int | diff_colors (const uint8_t *colorA, const uint8_t *colorB) |
static int | max_component_diff (const uint16_t *colorA, const uint16_t *colorB) |
static void | get_max_component_diff (const BlockInfo *bi, const uint16_t *block_ptr, uint8_t *min, uint8_t *max, channel_offset *chan) |
static int | compare_blocks (const uint16_t *block1, const uint16_t *block2, const BlockInfo *bi, int thresh) |
static int | leastsquares (const uint16_t *block_ptr, const BlockInfo *bi, channel_offset xchannel, channel_offset ychannel, double *slope, double *y_intercept, double *correlation_coef) |
static int | calc_lsq_max_fit_error (const uint16_t *block_ptr, const BlockInfo *bi, int min, int max, int tmp_min, int tmp_max, channel_offset xchannel, channel_offset ychannel) |
static int | match_color (const uint16_t *color, uint8_t colors[4][3]) |
static int | encode_four_color_block (const uint8_t *min_color, const uint8_t *max_color, PutBitContext *pb, const uint16_t *block_ptr, const BlockInfo *bi) |
static void | update_block_in_prev_frame (const uint16_t *src_pixels, uint16_t *dest_pixels, const BlockInfo *bi, int block_counter) |
static int | update_block_stats (RpzaContext *s, const BlockInfo *bi, const uint16_t *block, uint8_t min_color[3], uint8_t max_color[3], int *total_rgb, int *total_pixels, uint8_t avg_color[3], int first_block) |
static void | rpza_encode_stream (RpzaContext *s, const AVFrame *pict) |
static int | rpza_encode_init (AVCodecContext *avctx) |
static int | rpza_encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *pict, int *got_packet) |
static int | rpza_encode_end (AVCodecContext *avctx) |
Variables | |
static const AVOption | options [] |
static const AVClass | rpza_class |
const FFCodec | ff_rpza_encoder |
QT RPZA Video Encoder by Todd Kirby doubl and David Adler esho t@pac bell .net
Definition in file rpzaenc.c.
#define OFFSET | ( | x | ) | offsetof(RpzaContext, x) |
#define VE AV_OPT_FLAG_VIDEO_PARAM | AV_OPT_FLAG_ENCODING_PARAM |
enum channel_offset |
|
static |
Definition at line 88 of file rpzaenc.c.
Referenced by encode_four_color_block().
Definition at line 117 of file rpzaenc.c.
Referenced by rpza_encode_stream().
|
static |
Definition at line 139 of file rpzaenc.c.
Referenced by encode_four_color_block(), and rpza_encode_stream().
|
static |
Definition at line 158 of file rpzaenc.c.
Referenced by match_color().
|
static |
Definition at line 172 of file rpzaenc.c.
Referenced by compare_blocks().
|
static |
Definition at line 196 of file rpzaenc.c.
Referenced by rpza_encode_stream().
|
static |
Definition at line 246 of file rpzaenc.c.
Referenced by rpza_encode_stream().
|
static |
Definition at line 267 of file rpzaenc.c.
Referenced by rpza_encode_stream().
|
static |
Definition at line 320 of file rpzaenc.c.
Referenced by rpza_encode_stream().
|
static |
Definition at line 361 of file rpzaenc.c.
Referenced by encode_four_color_block().
|
static |
Definition at line 388 of file rpzaenc.c.
Referenced by rpza_encode_stream().
|
static |
Definition at line 430 of file rpzaenc.c.
Referenced by rpza_encode_stream().
|
static |
Definition at line 459 of file rpzaenc.c.
Referenced by rpza_encode_stream().
|
static |
Definition at line 563 of file rpzaenc.c.
Referenced by rpza_encode_frame().
|
static |
|
static |
|
static |
|
static |
|
static |
const FFCodec ff_rpza_encoder |