libavcodec/flashsv.c File Reference

Flash Screen Video decoder. More...

#include <stdio.h>
#include <stdlib.h>
#include <zlib.h>
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "bytestream.h"
#include "get_bits.h"

Go to the source code of this file.

Data Structures

struct  BlockInfo
struct  FlashSVContext

Typedefs

typedef struct BlockInfo BlockInfo
typedef struct FlashSVContext FlashSVContext

Functions

static int decode_hybrid (const uint8_t *sptr, uint8_t *dptr, int dx, int dy, int h, int w, int stride, const uint32_t *pal)
static av_cold int flashsv_decode_init (AVCodecContext *avctx)
static int flashsv2_prime (FlashSVContext *s, uint8_t *src, int size, int unp_size)
static int flashsv_decode_block (AVCodecContext *avctx, AVPacket *avpkt, GetBitContext *gb, int block_size, int width, int height, int x_pos, int y_pos, int blk_idx)
static int calc_deflate_block_size (int tmpblock_size)
static int flashsv_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold int flashsv_decode_end (AVCodecContext *avctx)
static av_cold int flashsv2_decode_init (AVCodecContext *avctx)
static av_cold int flashsv2_decode_end (AVCodecContext *avctx)

Variables

AVCodec ff_flashsv_decoder
static const uint32_t ff_flashsv2_default_palette [128]
AVCodec ff_flashsv2_decoder

Detailed Description

Flash Screen Video decoder.

Author:
Alex Beregszaszi
Benjamin Larsson
Daniel Verkamp
Konstantin Shishkov

A description of the bitstream format for Flash Screen Video version 1/2 is part of the SWF File Format Specification (version 10), which can be downloaded from http://www.adobe.com/devnet/swf.html.

Definition in file flashsv.c.


Typedef Documentation

typedef struct BlockInfo BlockInfo

Function Documentation

static int calc_deflate_block_size ( int  tmpblock_size  )  [static]

Definition at line 224 of file flashsv.c.

Referenced by flashsv_decode_frame().

static int decode_hybrid ( const uint8_t *  sptr,
uint8_t *  dptr,
int  dx,
int  dy,
int  h,
int  w,
int  stride,
const uint32_t *  pal 
) [static]

Definition at line 73 of file flashsv.c.

Referenced by flashsv_decode_block().

static av_cold int flashsv2_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 516 of file flashsv.c.

static av_cold int flashsv2_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 506 of file flashsv.c.

static int flashsv2_prime ( FlashSVContext s,
uint8_t *  src,
int  size,
int  unp_size 
) [static]

Definition at line 125 of file flashsv.c.

Referenced by flashsv_decode_block().

static int flashsv_decode_block ( AVCodecContext avctx,
AVPacket avpkt,
GetBitContext gb,
int  block_size,
int  width,
int  height,
int  x_pos,
int  y_pos,
int  blk_idx 
) [static]

Definition at line 164 of file flashsv.c.

Referenced by flashsv_decode_frame().

static av_cold int flashsv_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 450 of file flashsv.c.

Referenced by flashsv2_decode_end().

static int flashsv_decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
AVPacket avpkt 
) [static]

Definition at line 240 of file flashsv.c.

static av_cold int flashsv_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 103 of file flashsv.c.

Referenced by flashsv2_decode_init().


Variable Documentation

Initial value:
 {
    .name           = "flashsv2",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_FLASHSV2,
    .priv_data_size = sizeof(FlashSVContext),
    .init           = flashsv2_decode_init,
    .close          = flashsv2_decode_end,
    .decode         = flashsv_decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .pix_fmts       = (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_NONE},
    .long_name      = NULL_IF_CONFIG_SMALL("Flash Screen Video v2"),
}

Definition at line 529 of file flashsv.c.

const uint32_t ff_flashsv2_default_palette[128] [static]
Initial value:
 {
    0x000000, 0x333333, 0x666666, 0x999999, 0xCCCCCC, 0xFFFFFF,
    0x330000, 0x660000, 0x990000, 0xCC0000, 0xFF0000, 0x003300,
    0x006600, 0x009900, 0x00CC00, 0x00FF00, 0x000033, 0x000066,
    0x000099, 0x0000CC, 0x0000FF, 0x333300, 0x666600, 0x999900,
    0xCCCC00, 0xFFFF00, 0x003333, 0x006666, 0x009999, 0x00CCCC,
    0x00FFFF, 0x330033, 0x660066, 0x990099, 0xCC00CC, 0xFF00FF,
    0xFFFF33, 0xFFFF66, 0xFFFF99, 0xFFFFCC, 0xFF33FF, 0xFF66FF,
    0xFF99FF, 0xFFCCFF, 0x33FFFF, 0x66FFFF, 0x99FFFF, 0xCCFFFF,
    0xCCCC33, 0xCCCC66, 0xCCCC99, 0xCCCCFF, 0xCC33CC, 0xCC66CC,
    0xCC99CC, 0xCCFFCC, 0x33CCCC, 0x66CCCC, 0x99CCCC, 0xFFCCCC,
    0x999933, 0x999966, 0x9999CC, 0x9999FF, 0x993399, 0x996699,
    0x99CC99, 0x99FF99, 0x339999, 0x669999, 0xCC9999, 0xFF9999,
    0x666633, 0x666699, 0x6666CC, 0x6666FF, 0x663366, 0x669966,
    0x66CC66, 0x66FF66, 0x336666, 0x996666, 0xCC6666, 0xFF6666,
    0x333366, 0x333399, 0x3333CC, 0x3333FF, 0x336633, 0x339933,
    0x33CC33, 0x33FF33, 0x663333, 0x993333, 0xCC3333, 0xFF3333,
    0x003366, 0x336600, 0x660033, 0x006633, 0x330066, 0x663300,
    0x336699, 0x669933, 0x993366, 0x339966, 0x663399, 0x996633,
    0x6699CC, 0x99CC66, 0xCC6699, 0x66CC99, 0x9966CC, 0xCC9966,
    0x99CCFF, 0xCCFF99, 0xFF99CC, 0x99FFCC, 0xCC99FF, 0xFFCC99,
    0x111111, 0x222222, 0x444444, 0x555555, 0xAAAAAA, 0xBBBBBB,
    0xDDDDDD, 0xEEEEEE
}

Definition at line 481 of file flashsv.c.

Referenced by flashsv2_decode_init().

Initial value:
 {
    .name           = "flashsv",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_FLASHSV,
    .priv_data_size = sizeof(FlashSVContext),
    .init           = flashsv_decode_init,
    .close          = flashsv_decode_end,
    .decode         = flashsv_decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .pix_fmts       = (const enum PixelFormat[]){PIX_FMT_BGR24, PIX_FMT_NONE},
    .long_name      = NULL_IF_CONFIG_SMALL("Flash Screen Video v1"),
}

Definition at line 466 of file flashsv.c.