hvirtual/quicktime/ffmpeg/libavcodec/indeo3.c File Reference

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

Include dependency graph for indeo3.c:

Go to the source code of this file.

Data Structures

struct  YUVBufs
struct  Indeo3DecodeContext
struct  ustr_t

Defines

#define min(a, b)   ((a) < (b) ? (a) : (b))
#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, unsigned char *buf1, long fflags2, unsigned char *hdr, 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, 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, unsigned char *buf, int buf_size)
static int indeo3_decode_end (AVCodecContext *avctx)

Variables

static int corrector_type_0 [24]
static 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 294 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 269 of file indeo3.c.

Referenced by iv_Decode_Chunk().

#define min ( a,
b   )     ((a) < (b) ? (a) : (b))

#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 303 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 281 of file indeo3.c.

Referenced by iv_Decode_Chunk().


Function Documentation

static void build_modpred ( Indeo3DecodeContext s  )  [static]

Definition at line 64 of file indeo3.c.

References av_malloc(), Indeo3DecodeContext::corrector_type, corrector_type_0, corrector_type_2, and Indeo3DecodeContext::ModPred.

Referenced by indeo3_decode_init().

Here is the call graph for this function:

static int indeo3_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 1131 of file indeo3.c.

References iv_free_func(), AVCodecContext::priv_data, and s.

Here is the call graph for this function:

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

static int indeo3_decode_init ( AVCodecContext avctx  )  [static]

static void iv_alloc_frames ( Indeo3DecodeContext s  )  [static]

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

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

static void iv_free_func ( Indeo3DecodeContext s  )  [static]


Variable Documentation

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 56 of file indeo3.c.

Referenced by build_modpred().

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

Definition at line 62 of file indeo3.c.

Referenced by build_modpred().

Initial value:

Definition at line 1140 of file indeo3.c.

Referenced by avcodec_register_all().


Generated on Mon Apr 28 14:04:44 2008 for Cinelerra by  doxygen 1.5.5