libavcodec/asv1.c File Reference

ASUS V1/V2 codec. More...

#include "avcodec.h"
#include "libavutil/common.h"
#include "put_bits.h"
#include "dsputil.h"
#include "mpeg12data.h"

Go to the source code of this file.

Data Structures

struct  ASV1Context

Defines

#define VLC_BITS   6
#define ASV2_LEVEL_VLC_BITS   10

Functions

static av_cold void init_vlcs (ASV1Context *a)
static int asv2_get_bits (GetBitContext *gb, int n)
static void asv2_put_bits (PutBitContext *pb, int n, int v)
static int asv1_get_level (GetBitContext *gb)
static int asv2_get_level (GetBitContext *gb)
static void asv1_put_level (PutBitContext *pb, int level)
static void asv2_put_level (PutBitContext *pb, int level)
static int asv1_decode_block (ASV1Context *a, DCTELEM block[64])
static int asv2_decode_block (ASV1Context *a, DCTELEM block[64])
static void asv1_encode_block (ASV1Context *a, DCTELEM block[64])
static void asv2_encode_block (ASV1Context *a, DCTELEM block[64])
static int decode_mb (ASV1Context *a, DCTELEM block[6][64])
static int encode_mb (ASV1Context *a, DCTELEM block[6][64])
static void idct_put (ASV1Context *a, int mb_x, int mb_y)
static void dct_get (ASV1Context *a, int mb_x, int mb_y)
static int decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold void common_init (AVCodecContext *avctx)
static av_cold int decode_init (AVCodecContext *avctx)
static av_cold int decode_end (AVCodecContext *avctx)

Variables

static const uint8_t scantab [64]
static const uint8_t ccp_tab [17][2]
static const uint8_t level_tab [7][2]
static const uint8_t dc_ccp_tab [8][2]
static const uint8_t ac_ccp_tab [16][2]
static const uint8_t asv2_level_tab [63][2]
static VLC ccp_vlc
static VLC level_vlc
static VLC dc_ccp_vlc
static VLC ac_ccp_vlc
static VLC asv2_level_vlc
AVCodec ff_asv1_decoder
AVCodec ff_asv2_decoder


Detailed Description

ASUS V1/V2 codec.

Definition in file asv1.c.


Define Documentation

#define ASV2_LEVEL_VLC_BITS   10

Definition at line 37 of file asv1.c.

Referenced by asv2_get_level(), and init_vlcs().

#define VLC_BITS   6


Function Documentation

static int asv1_decode_block ( ASV1Context a,
DCTELEM  block[64] 
) [inline, static]

Definition at line 184 of file asv1.c.

Referenced by decode_mb().

static void asv1_encode_block ( ASV1Context a,
DCTELEM  block[64] 
) [inline, static]

Definition at line 237 of file asv1.c.

Referenced by encode_mb().

static int asv1_get_level ( GetBitContext gb  )  [inline, static]

Definition at line 150 of file asv1.c.

Referenced by asv1_decode_block().

static void asv1_put_level ( PutBitContext pb,
int  level 
) [inline, static]

Definition at line 164 of file asv1.c.

Referenced by asv1_encode_block().

static int asv2_decode_block ( ASV1Context a,
DCTELEM  block[64] 
) [inline, static]

Definition at line 209 of file asv1.c.

Referenced by decode_mb().

static void asv2_encode_block ( ASV1Context a,
DCTELEM  block[64] 
) [inline, static]

Definition at line 270 of file asv1.c.

Referenced by encode_mb().

static int asv2_get_bits ( GetBitContext gb,
int  n 
) [inline, static]

Definition at line 142 of file asv1.c.

Referenced by asv2_decode_block(), and asv2_get_level().

static int asv2_get_level ( GetBitContext gb  )  [inline, static]

Definition at line 157 of file asv1.c.

Referenced by asv2_decode_block().

static void asv2_put_bits ( PutBitContext pb,
int  n,
int  v 
) [inline, static]

Definition at line 146 of file asv1.c.

Referenced by asv2_encode_block(), and asv2_put_level().

static void asv2_put_level ( PutBitContext pb,
int  level 
) [inline, static]

Definition at line 174 of file asv1.c.

Referenced by asv2_encode_block().

static av_cold void common_init ( AVCodecContext avctx  )  [static]

Definition at line 518 of file asv1.c.

static void dct_get ( ASV1Context a,
int  mb_x,
int  mb_y 
) [inline, static]

Definition at line 365 of file asv1.c.

static av_cold int decode_end ( AVCodecContext avctx  )  [static]

Definition at line 592 of file asv1.c.

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

Definition at line 389 of file asv1.c.

static av_cold int decode_init ( AVCodecContext avctx  )  [static]

Definition at line 532 of file asv1.c.

static int decode_mb ( ASV1Context a,
DCTELEM  block[6][64] 
) [inline, static]

Definition at line 309 of file asv1.c.

Referenced by decode_frame(), ff_er_frame_end(), and guess_mv().

static int encode_mb ( ASV1Context a,
DCTELEM  block[6][64] 
) [inline, static]

Definition at line 328 of file asv1.c.

Referenced by encode_mb_hq(), and encode_thread().

static void idct_put ( ASV1Context a,
int  mb_x,
int  mb_y 
) [inline, static]

Definition at line 346 of file asv1.c.

static av_cold void init_vlcs ( ASV1Context a  )  [static]

Definition at line 117 of file asv1.c.


Variable Documentation

const uint8_t ac_ccp_tab[16][2] [static]

Initial value:

{
    {0x00,2}, {0x3B,6}, {0x0A,4}, {0x3A,6},
    {0x02,3}, {0x39,6}, {0x3C,6}, {0x38,6},
    {0x03,3}, {0x3D,6}, {0x08,4}, {0x1F,5},
    {0x09,4}, {0x0B,4}, {0x0D,4}, {0x0C,4},
}

Definition at line 87 of file asv1.c.

Referenced by asv2_encode_block(), and init_vlcs().

VLC ac_ccp_vlc [static]

Definition at line 114 of file asv1.c.

const uint8_t asv2_level_tab[63][2] [static]

Initial value:

{
    {0x3F,10},{0x2F,10},{0x37,10},{0x27,10},{0x3B,10},{0x2B,10},{0x33,10},{0x23,10},
    {0x3D,10},{0x2D,10},{0x35,10},{0x25,10},{0x39,10},{0x29,10},{0x31,10},{0x21,10},
    {0x1F, 8},{0x17, 8},{0x1B, 8},{0x13, 8},{0x1D, 8},{0x15, 8},{0x19, 8},{0x11, 8},
    {0x0F, 6},{0x0B, 6},{0x0D, 6},{0x09, 6},
    {0x07, 4},{0x05, 4},
    {0x03, 2},
    {0x00, 5},
    {0x02, 2},
    {0x04, 4},{0x06, 4},
    {0x08, 6},{0x0C, 6},{0x0A, 6},{0x0E, 6},
    {0x10, 8},{0x18, 8},{0x14, 8},{0x1C, 8},{0x12, 8},{0x1A, 8},{0x16, 8},{0x1E, 8},
    {0x20,10},{0x30,10},{0x28,10},{0x38,10},{0x24,10},{0x34,10},{0x2C,10},{0x3C,10},
    {0x22,10},{0x32,10},{0x2A,10},{0x3A,10},{0x26,10},{0x36,10},{0x2E,10},{0x3E,10},
}

Definition at line 94 of file asv1.c.

Referenced by asv2_put_level(), and init_vlcs().

VLC asv2_level_vlc [static]

Definition at line 115 of file asv1.c.

const uint8_t ccp_tab[17][2] [static]

Initial value:

{
    {0x2,2}, {0x7,5}, {0xB,5}, {0x3,5},
    {0xD,5}, {0x5,5}, {0x9,5}, {0x1,5},
    {0xE,5}, {0x6,5}, {0xA,5}, {0x2,5},
    {0xC,5}, {0x4,5}, {0x8,5}, {0x3,2},
    {0xF,5}, 
}

Definition at line 70 of file asv1.c.

Referenced by asv1_encode_block(), and init_vlcs().

VLC ccp_vlc [static]

Definition at line 111 of file asv1.c.

const uint8_t dc_ccp_tab[8][2] [static]

Initial value:

{
    {0x1,2}, {0xD,4}, {0xF,4}, {0xC,4},
    {0x5,3}, {0xE,4}, {0x4,3}, {0x0,2},
}

Definition at line 82 of file asv1.c.

Referenced by asv2_encode_block(), and init_vlcs().

VLC dc_ccp_vlc [static]

Definition at line 113 of file asv1.c.

Initial value:

 {
    .name           = "asv1",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_ASV1,
    .priv_data_size = sizeof(ASV1Context),
    .init           = decode_init,
    .close          = decode_end,
    .decode         = decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .long_name= NULL_IF_CONFIG_SMALL("ASUS V1"),
}

Definition at line 605 of file asv1.c.

Initial value:

 {
    .name           = "asv2",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = CODEC_ID_ASV2,
    .priv_data_size = sizeof(ASV1Context),
    .init           = decode_init,
    .close          = decode_end,
    .decode         = decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .long_name= NULL_IF_CONFIG_SMALL("ASUS V2"),
}

Definition at line 617 of file asv1.c.

const uint8_t level_tab[7][2] [static]

Initial value:

{
    {3,4}, {3,3}, {3,2}, {0,3}, {2,2}, {2,3}, {2,4}
}

Definition at line 78 of file asv1.c.

Referenced by asv1_put_level(), dct_quantize_trellis_c(), and init_vlcs().

VLC level_vlc [static]

Definition at line 112 of file asv1.c.

const uint8_t scantab[64] [static]

Initial value:

{
    0x00,0x08,0x01,0x09,0x10,0x18,0x11,0x19,
    0x02,0x0A,0x03,0x0B,0x12,0x1A,0x13,0x1B,
    0x04,0x0C,0x05,0x0D,0x20,0x28,0x21,0x29,
    0x06,0x0E,0x07,0x0F,0x14,0x1C,0x15,0x1D,
    0x22,0x2A,0x23,0x2B,0x30,0x38,0x31,0x39,
    0x16,0x1E,0x17,0x1F,0x24,0x2C,0x25,0x2D,
    0x32,0x3A,0x33,0x3B,0x26,0x2E,0x27,0x2F,
    0x34,0x3C,0x35,0x3D,0x36,0x3E,0x37,0x3F,
}

Definition at line 58 of file asv1.c.

Referenced by asv1_encode_block(), asv2_encode_block(), decode_init(), and dequant().


Generated on Fri Oct 26 02:43:46 2012 for FFmpeg by  doxygen 1.5.8