libavcodec/mimic.c File Reference

#include <stdlib.h>
#include <string.h>
#include <stdint.h>
#include "avcodec.h"
#include "internal.h"
#include "get_bits.h"
#include "bytestream.h"
#include "dsputil.h"
#include "thread.h"

Go to the source code of this file.

Data Structures

struct  MimicContext

Defines

#define MIMIC_HEADER_SIZE   20

Functions

static av_cold int mimic_decode_init (AVCodecContext *avctx)
static int mimic_decode_update_thread_context (AVCodecContext *avctx, const AVCodecContext *avctx_from)
static int vlc_decode_block (MimicContext *ctx, int num_coeffs, int qscale)
static int decode (MimicContext *ctx, int quality, int num_coeffs, int is_iframe)
static void prepare_avpic (MimicContext *ctx, AVPicture *dst, AVPicture *src)
 Flip the buffer upside-down and put it in the YVU order to match the way Mimic encodes frames.
static int mimic_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold int mimic_decode_end (AVCodecContext *avctx)

Variables

static const uint32_t huffcodes []
static const uint8_t huffbits []
static const uint8_t col_zag [64]
static const int8_t vlcdec_lookup [9][64]
AVCodec ff_mimic_decoder


Define Documentation

#define MIMIC_HEADER_SIZE   20

Definition at line 33 of file mimic.c.

Referenced by mimic_decode_frame().


Function Documentation

static int decode ( MimicContext ctx,
int  quality,
int  num_coeffs,
int  is_iframe 
) [static]

Definition at line 228 of file mimic.c.

static av_cold int mimic_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 404 of file mimic.c.

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

Definition at line 303 of file mimic.c.

static av_cold int mimic_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 112 of file mimic.c.

static int mimic_decode_update_thread_context ( AVCodecContext avctx,
const AVCodecContext avctx_from 
) [static]

Definition at line 130 of file mimic.c.

static void prepare_avpic ( MimicContext ctx,
AVPicture dst,
AVPicture src 
) [static]

Flip the buffer upside-down and put it in the YVU order to match the way Mimic encodes frames.

Definition at line 293 of file mimic.c.

Referenced by mimic_decode_frame().

static int vlc_decode_block ( MimicContext ctx,
int  num_coeffs,
int  qscale 
) [static]

Definition at line 184 of file mimic.c.

Referenced by decode().


Variable Documentation

const uint8_t col_zag[64] [static]

Initial value:

 {
     0,  8,  1,  2,  9, 16, 24, 17,
    10,  3,  4, 11, 18, 25, 32, 40,
    33, 26, 19, 12,  5,  6, 13, 20,
    27, 34, 41, 48, 56, 49, 42, 35,
    28, 21, 14,  7, 15, 22, 29, 36,
    43, 50, 57, 58, 51, 44, 37, 30,
    23, 31, 38, 45, 52, 59, 39, 46,
    53, 60, 61, 54, 47, 55, 62, 63,
}

Definition at line 101 of file mimic.c.

Referenced by mimic_decode_init().

Initial value:

 {
    .name                  = "mimic",
    .type                  = AVMEDIA_TYPE_VIDEO,
    .id                    = CODEC_ID_MIMIC,
    .priv_data_size        = sizeof(MimicContext),
    .init                  = mimic_decode_init,
    .close                 = mimic_decode_end,
    .decode                = mimic_decode_frame,
    .capabilities          = CODEC_CAP_DR1 | CODEC_CAP_FRAME_THREADS,
    .long_name             = NULL_IF_CONFIG_SMALL("Mimic"),
    .update_thread_context = ONLY_IF_THREADS_ENABLED(mimic_decode_update_thread_context)
}

Definition at line 422 of file mimic.c.

const uint8_t huffbits[] [static]

Initial value:

 {
     4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,
     0,  0,  0,  0,  2,  4,  5,  6,  7,  7,  7,  8,
     8, 10, 11, 11, 11, 11, 12, 12,  2,  6,  7,  8,
     9,  9, 12, 12, 13, 13, 13, 13, 14, 14, 14,  0,
     3,  6,  9, 14, 15, 15, 15, 15, 16, 16, 16, 16,
    17, 17, 17,  0,  4,  8,  9, 17, 18, 18, 18, 18,
    19, 19, 19, 19, 20, 20, 20,  0,  5, 10, 20, 21,
    21, 21, 21, 22, 22, 22, 22, 23, 23, 23, 23,  0,
     6, 10, 24, 24, 24, 24, 25, 25, 25, 25, 26, 26,
    26, 26, 27,  0, 10, 27, 27, 27, 28, 28, 28, 28,
    29, 29, 29, 29, 30, 30, 30,
}

Definition at line 87 of file mimic.c.

Referenced by mimic_decode_init().

const uint32_t huffcodes[] [static]

Initial value:

 {
    0x0000000a, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
    0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x0000000b,
    0x0000001b, 0x00000038, 0x00000078, 0x00000079, 0x0000007a, 0x000000f9,
    0x000000fa, 0x000003fb, 0x000007f8, 0x000007f9, 0x000007fa, 0x000007fb,
    0x00000ff8, 0x00000ff9, 0x00000001, 0x00000039, 0x0000007b, 0x000000fb,
    0x000001f8, 0x000001f9, 0x00000ffa, 0x00000ffb, 0x00001ff8, 0x00001ff9,
    0x00001ffa, 0x00001ffb, 0x00003ff8, 0x00003ff9, 0x00003ffa, 0x00000000,
    0x00000004, 0x0000003a, 0x000001fa, 0x00003ffb, 0x00007ff8, 0x00007ff9,
    0x00007ffa, 0x00007ffb, 0x0000fff8, 0x0000fff9, 0x0000fffa, 0x0000fffb,
    0x0001fff8, 0x0001fff9, 0x0001fffa, 0x00000000, 0x0000000c, 0x000000f8,
    0x000001fb, 0x0001fffb, 0x0003fff8, 0x0003fff9, 0x0003fffa, 0x0003fffb,
    0x0007fff8, 0x0007fff9, 0x0007fffa, 0x0007fffb, 0x000ffff8, 0x000ffff9,
    0x000ffffa, 0x00000000, 0x0000001a, 0x000003f8, 0x000ffffb, 0x001ffff8,
    0x001ffff9, 0x001ffffa, 0x001ffffb, 0x003ffff8, 0x003ffff9, 0x003ffffa,
    0x003ffffb, 0x007ffff8, 0x007ffff9, 0x007ffffa, 0x007ffffb, 0x00000000,
    0x0000003b, 0x000003f9, 0x00fffff8, 0x00fffff9, 0x00fffffa, 0x00fffffb,
    0x01fffff8, 0x01fffff9, 0x01fffffa, 0x01fffffb, 0x03fffff8, 0x03fffff9,
    0x03fffffa, 0x03fffffb, 0x07fffff8, 0x00000000, 0x000003fa, 0x07fffff9,
    0x07fffffa, 0x07fffffb, 0x0ffffff8, 0x0ffffff9, 0x0ffffffa, 0x0ffffffb,
    0x1ffffff8, 0x1ffffff9, 0x1ffffffa, 0x1ffffffb, 0x3ffffff8, 0x3ffffff9,
    0x3ffffffa,
}

Definition at line 62 of file mimic.c.

Referenced by mimic_decode_init().

const int8_t vlcdec_lookup[9][64] [static]

Definition at line 147 of file mimic.c.

Referenced by vlc_decode_block().


Generated on Fri Oct 26 02:47:57 2012 for FFmpeg by  doxygen 1.5.8