FFmpeg
|
#include <stdio.h>
#include <stdlib.h>
#include <zlib.h>
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "encode.h"
#include "internal.h"
#include "put_bits.h"
#include "bytestream.h"
Go to the source code of this file.
Data Structures | |
struct | Block |
struct | Palette |
struct | FlashSV2Context |
Macros | |
#define | HAS_IFRAME_IMAGE 0x02 |
#define | HAS_PALLET_INFO 0x01 |
#define | COLORSPACE_BGR 0x00 |
#define | COLORSPACE_15_7 0x10 |
#define | HAS_DIFF_BLOCKS 0x04 |
#define | ZLIB_PRIME_COMPRESS_CURRENT 0x02 |
#define | ZLIB_PRIME_COMPRESS_PREVIOUS 0x01 |
#define | FLASHSV2_DUMB |
#define | ABSDIFF(a, b) (abs((int)(a)-(int)(b))) |
Functions | |
static av_cold void | cleanup (FlashSV2Context *s) |
static void | init_blocks (FlashSV2Context *s, Block *blocks, uint8_t *encbuf, uint8_t *databuf) |
static void | reset_stats (FlashSV2Context *s) |
static int | update_block_dimensions (FlashSV2Context *s, int block_width, int block_height) |
static av_cold int | flashsv2_encode_init (AVCodecContext *avctx) |
static int | new_key_frame (FlashSV2Context *s) |
static int | write_palette (FlashSV2Context *s, uint8_t *buf, int buf_size) |
static int | write_header (FlashSV2Context *s, uint8_t *buf, int buf_size) |
static int | write_block (Block *b, uint8_t *buf, int buf_size) |
static int | encode_zlib (Block *b, uint8_t *buf, unsigned long *buf_size, int comp) |
static int | encode_zlibprime (Block *b, Block *prime, uint8_t *buf, int *buf_size, int comp) |
static int | encode_bgr (Block *b, const uint8_t *src, int stride) |
static unsigned | pixel_color15 (const uint8_t *src) |
static unsigned int | chroma_diff (unsigned int c1, unsigned int c2) |
static int | pixel_color7_fast (Palette *palette, unsigned c15) |
static int | pixel_color7_slow (Palette *palette, unsigned color) |
static unsigned | pixel_bgr (const uint8_t *src) |
static int | write_pixel_15_7 (Palette *palette, uint8_t *dest, const uint8_t *src, int dist) |
static int | update_palette_index (Palette *palette) |
static int | generate_default_palette (Palette *palette) |
static int | generate_optimum_palette (Palette *palette, const uint8_t *image, int width, int height, int stride) |
static int | encode_15_7_sl (Palette *palette, uint8_t *dest, const uint8_t *src, int width, int dist) |
static int | encode_15_7 (Palette *palette, Block *b, const uint8_t *src, int stride, int dist) |
static int | encode_block (FlashSV2Context *s, Palette *palette, Block *b, Block *prev, const uint8_t *src, int stride, int comp, int dist, int keyframe) |
static int | compare_sl (FlashSV2Context *s, Block *b, const uint8_t *src, uint8_t *frame, uint8_t *key, int y, int keyframe) |
static int | mark_all_blocks (FlashSV2Context *s, const uint8_t *src, int stride, int keyframe) |
static int | encode_all_blocks (FlashSV2Context *s, int keyframe) |
static int | write_all_blocks (FlashSV2Context *s, uint8_t *buf, int buf_size) |
static int | write_bitstream (FlashSV2Context *s, const uint8_t *src, int stride, uint8_t *buf, int buf_size, int keyframe) |
static void | recommend_keyframe (FlashSV2Context *s, int *keyframe) |
static int | optimum_block_width (FlashSV2Context *s) |
static int | optimum_block_height (FlashSV2Context *s) |
static int | optimum_use15_7 (FlashSV2Context *s) |
static int | optimum_dist (FlashSV2Context *s) |
static int | reconfigure_at_keyframe (FlashSV2Context *s, const uint8_t *image, int stride) |
static int | flashsv2_encode_frame (AVCodecContext *avctx, AVPacket *pkt, const AVFrame *p, int *got_packet) |
static av_cold int | flashsv2_encode_end (AVCodecContext *avctx) |
Variables | |
static const unsigned int | default_screen_video_v2_palette [128] |
const AVCodec | ff_flashsv2_encoder |
Flash Screen Video Version 2 encoder
Definition in file flashsv2enc.c.
#define HAS_IFRAME_IMAGE 0x02 |
Definition at line 56 of file flashsv2enc.c.
#define HAS_PALLET_INFO 0x01 |
Definition at line 57 of file flashsv2enc.c.
#define COLORSPACE_BGR 0x00 |
Definition at line 59 of file flashsv2enc.c.
#define COLORSPACE_15_7 0x10 |
Definition at line 60 of file flashsv2enc.c.
#define HAS_DIFF_BLOCKS 0x04 |
Definition at line 61 of file flashsv2enc.c.
#define ZLIB_PRIME_COMPRESS_CURRENT 0x02 |
Definition at line 62 of file flashsv2enc.c.
#define ZLIB_PRIME_COMPRESS_PREVIOUS 0x01 |
Definition at line 63 of file flashsv2enc.c.
#define FLASHSV2_DUMB |
Definition at line 67 of file flashsv2enc.c.
|
static |
Definition at line 128 of file flashsv2enc.c.
Referenced by decode_audio_frame(), encode_audio_frame(), ff_imf_parse_cpl_from_xml_dom(), ff_init_filters(), ff_mov_generate_squashed_ttml_packet(), flashsv2_encode_end(), ftp_delete(), ftp_move(), icecast_open(), libsmbc_delete(), libsmbc_move(), libssh_delete(), libssh_move(), main(), mov_read_kind(), mov_write_ttml_document_from_queue(), open_input(), open_output_file(), open_track_resource_context(), parse_manifest(), read_decode_convert_and_store(), test_asset_map_parsing(), and tls_read().
|
static |
Definition at line 141 of file flashsv2enc.c.
Referenced by update_block_dimensions().
|
static |
Definition at line 168 of file flashsv2enc.c.
Referenced by flashsv2_encode_init(), and reconfigure_at_keyframe().
|
static |
Definition at line 179 of file flashsv2enc.c.
Referenced by flashsv2_encode_init(), and reconfigure_at_keyframe().
|
static |
Definition at line 206 of file flashsv2enc.c.
|
static |
Definition at line 267 of file flashsv2enc.c.
Referenced by flashsv2_encode_frame().
|
static |
Definition at line 284 of file flashsv2enc.c.
Referenced by write_header().
|
static |
Definition at line 290 of file flashsv2enc.c.
Referenced by write_bitstream().
Definition at line 320 of file flashsv2enc.c.
Referenced by write_all_blocks().
Definition at line 360 of file flashsv2enc.c.
Referenced by encode_block().
|
static |
Definition at line 366 of file flashsv2enc.c.
Referenced by encode_block().
Definition at line 400 of file flashsv2enc.c.
Referenced by encode_block().
|
inlinestatic |
Definition at line 416 of file flashsv2enc.c.
Referenced by write_pixel_15_7().
Definition at line 421 of file flashsv2enc.c.
Referenced by pixel_color7_slow(), and write_pixel_15_7().
Definition at line 433 of file flashsv2enc.c.
Referenced by write_pixel_15_7().
Definition at line 438 of file flashsv2enc.c.
Referenced by update_palette_index().
|
inlinestatic |
Definition at line 453 of file flashsv2enc.c.
Referenced by write_pixel_15_7().
|
static |
Definition at line 458 of file flashsv2enc.c.
Referenced by encode_15_7_sl().
Definition at line 476 of file flashsv2enc.c.
Referenced by generate_default_palette().
Definition at line 519 of file flashsv2enc.c.
Referenced by reconfigure_at_keyframe().
|
static |
Definition at line 527 of file flashsv2enc.c.
Referenced by reconfigure_at_keyframe().
|
inlinestatic |
Definition at line 534 of file flashsv2enc.c.
Referenced by encode_15_7().
|
static |
Definition at line 544 of file flashsv2enc.c.
Referenced by encode_block().
|
static |
Definition at line 561 of file flashsv2enc.c.
Referenced by encode_all_blocks().
|
static |
Definition at line 598 of file flashsv2enc.c.
Referenced by mark_all_blocks().
|
static |
Definition at line 616 of file flashsv2enc.c.
Referenced by write_bitstream().
|
static |
Definition at line 637 of file flashsv2enc.c.
Referenced by write_bitstream().
|
static |
Definition at line 677 of file flashsv2enc.c.
Referenced by write_bitstream().
|
static |
Definition at line 695 of file flashsv2enc.c.
Referenced by flashsv2_encode_frame().
|
static |
Definition at line 724 of file flashsv2enc.c.
Referenced by flashsv2_encode_frame().
|
static |
Definition at line 750 of file flashsv2enc.c.
Referenced by reconfigure_at_keyframe().
|
static |
Definition at line 762 of file flashsv2enc.c.
Referenced by reconfigure_at_keyframe().
|
static |
Definition at line 774 of file flashsv2enc.c.
Referenced by reconfigure_at_keyframe().
|
static |
Definition at line 789 of file flashsv2enc.c.
Referenced by flashsv2_encode_frame().
|
static |
Definition at line 804 of file flashsv2enc.c.
Referenced by flashsv2_encode_frame().
|
static |
Definition at line 841 of file flashsv2enc.c.
|
static |
Definition at line 892 of file flashsv2enc.c.
|
static |
Definition at line 494 of file flashsv2enc.c.
Referenced by generate_default_palette().
const AVCodec ff_flashsv2_encoder |
Definition at line 901 of file flashsv2enc.c.