libavcodec/indeo3.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"
#include "bytestream.h"
#include "indeo3data.h"

Go to the source code of this file.

Data Structures

struct  YUVBufs
struct  Indeo3DecodeContext
struct  ustr_t

Defines

#define LV1_CHECK(buf1, rle_v3, lv1, lp2)
#define RLE_V3_CHECK(buf1, rle_v1, rle_v2, rle_v3)
#define LP2_CHECK(buf1, rle_v3, lp2)
#define RLE_V2_CHECK(buf1, rle_v2, rle_v3, lp2)

Functions

static void build_modpred (Indeo3DecodeContext *s)
static void iv_Decode_Chunk (Indeo3DecodeContext *s, unsigned char *cur, unsigned char *ref, int width, int height, const unsigned char *buf1, long fflags2, const unsigned char *hdr, const unsigned char *buf2, int min_width_160)
static void iv_alloc_frames (Indeo3DecodeContext *s)
static void iv_free_func (Indeo3DecodeContext *s)
static unsigned long iv_decode_frame (Indeo3DecodeContext *s, const unsigned char *buf, int buf_size)
static int indeo3_decode_init (AVCodecContext *avctx)
static int indeo3_decode_frame (AVCodecContext *avctx, void *data, int *data_size, const unsigned char *buf, int buf_size)
static int indeo3_decode_end (AVCodecContext *avctx)

Variables

static const int corrector_type_0 [24]
static const int corrector_type_2 [8] = { 9, 7, 6, 8, 5, 4, 3, 2 }
AVCodec indeo3_decoder


Define Documentation

#define LP2_CHECK ( buf1,
rle_v3,
lp2   ) 

Value:

if(lp2 == 0 && rle_v3 != 0)     \
    rle_v3 = 0;           \
  else {                  \
    buf1--;               \
    rle_v3 = 1;           \
  }

Definition at line 283 of file indeo3.c.

Referenced by iv_Decode_Chunk().

#define LV1_CHECK ( buf1,
rle_v3,
lv1,
lp2   ) 

Value:

if((lv1 & 0x80) != 0) {   \
    if(rle_v3 != 0)         \
      rle_v3 = 0;           \
    else {                  \
      rle_v3 = 1;           \
      buf1 -= 2;            \
    }                       \
  }                         \
  lp2 = 4;

Definition at line 258 of file indeo3.c.

Referenced by iv_Decode_Chunk().

#define RLE_V2_CHECK ( buf1,
rle_v2,
rle_v3,
lp2   ) 

Value:

rle_v2--;             \
  if(rle_v2 == 0) {     \
    rle_v3 = 0;         \
    buf1 += 2;          \
  }                     \
  lp2 = 4;

Definition at line 292 of file indeo3.c.

Referenced by iv_Decode_Chunk().

#define RLE_V3_CHECK ( buf1,
rle_v1,
rle_v2,
rle_v3   ) 

Value:

if(rle_v3 == 0) {         \
    rle_v2 = *buf1;         \
    rle_v1 = 1;             \
    if(rle_v2 > 32) {       \
      rle_v2 -= 32;         \
      rle_v1 = 0;           \
    }                       \
    rle_v3 = 1;             \
  }                         \
  buf1--;

Definition at line 270 of file indeo3.c.

Referenced by iv_Decode_Chunk().


Function Documentation

static void build_modpred ( Indeo3DecodeContext s  )  [static]

Definition at line 66 of file indeo3.c.

Referenced by indeo3_decode_init().

static int indeo3_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 1119 of file indeo3.c.

static int indeo3_decode_frame ( AVCodecContext avctx,
void *  data,
int *  data_size,
const unsigned char *  buf,
int  buf_size 
) [static]

Definition at line 1067 of file indeo3.c.

static int indeo3_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 1052 of file indeo3.c.

static void iv_alloc_frames ( Indeo3DecodeContext s  )  [static]

Definition at line 101 of file indeo3.c.

Referenced by indeo3_decode_init().

static void iv_Decode_Chunk ( Indeo3DecodeContext s,
unsigned char *  cur,
unsigned char *  ref,
int  width,
int  height,
const unsigned char *  buf1,
long  fflags2,
const unsigned char *  hdr,
const unsigned char *  buf2,
int  min_width_160 
) [static]

Definition at line 300 of file indeo3.c.

Referenced by iv_decode_frame().

static unsigned long iv_decode_frame ( Indeo3DecodeContext s,
const unsigned char *  buf,
int  buf_size 
) [static]

Definition at line 179 of file indeo3.c.

Referenced by indeo3_decode_frame().

static void iv_free_func ( Indeo3DecodeContext s  )  [static]

Definition at line 159 of file indeo3.c.

Referenced by indeo3_decode_end().


Variable Documentation

const int corrector_type_0[24] [static]

Initial value:

 {
  195, 159, 133, 115, 101,  93,  87,  77,
  195, 159, 133, 115, 101,  93,  87,  77,
  128,  79,  79,  79,  79,  79,  79,  79
}

Definition at line 58 of file indeo3.c.

Referenced by build_modpred().

const int corrector_type_2[8] = { 9, 7, 6, 8, 5, 4, 3, 2 } [static]

Definition at line 64 of file indeo3.c.

Referenced by build_modpred().

Initial value:

Definition at line 1128 of file indeo3.c.


Generated on Thu Apr 2 07:16:12 2009 for ffmpeg by  doxygen 1.5.6