FFmpeg  4.0
Data Structures | Macros | Typedefs | Functions | Variables
interplayacm.c File Reference
#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "get_bits.h"
#include "internal.h"

Go to the source code of this file.

Data Structures

struct  InterplayACMContext
 

Macros

#define BITSTREAM_READER_LE
 
#define set_pos(s, r, c, idx)
 

Typedefs

typedef int(* filler) (InterplayACMContext *s, unsigned ind, unsigned col)
 

Functions

static av_cold int decode_init (AVCodecContext *avctx)
 
static int zero (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int bad (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int linear (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int k13 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int k12 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int k24 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int k23 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int k35 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int k34 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int k45 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int k44 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int t15 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int t27 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int t37 (InterplayACMContext *s, unsigned ind, unsigned col)
 
static int fill_block (InterplayACMContext *s)
 
static void juggle (int *wrap_p, int *block_p, unsigned sub_len, unsigned sub_count)
 
static void juggle_block (InterplayACMContext *s)
 
static int decode_block (InterplayACMContext *s)
 
static int decode_frame (AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *pkt)
 
static av_cold int decode_close (AVCodecContext *avctx)
 

Variables

static const int8_t map_1bit [] = { -1, +1 }
 
static const int8_t map_2bit_near [] = { -2, -1, +1, +2 }
 
static const int8_t map_2bit_far [] = { -3, -2, +2, +3 }
 
static const int8_t map_3bit [] = { -4, -3, -2, -1, +1, +2, +3, +4 }
 
static int mul_3x3 [3 *3 *3]
 
static int mul_3x5 [5 *5 *5]
 
static int mul_2x11 [11 *11]
 
static const filler filler_list []
 
AVCodec ff_interplay_acm_decoder
 

Macro Definition Documentation

◆ BITSTREAM_READER_LE

#define BITSTREAM_READER_LE

Definition at line 23 of file interplayacm.c.

◆ set_pos

#define set_pos (   s,
  r,
  c,
  idx 
)
Value:
do { \
unsigned pos = ((r) << s->level) + (c); \
s->block[pos] = s->midbuf[(idx)]; \
} while (0)
const char * s
Definition: avisynth_c.h:768
const char * r
Definition: vf_curves.c:111
static double c[64]

Definition at line 102 of file interplayacm.c.

Referenced by k12(), k13(), k23(), k24(), k34(), k35(), k44(), k45(), linear(), t15(), t27(), t37(), and zero().

Typedef Documentation

◆ filler

typedef int(* filler) (InterplayACMContext *s, unsigned ind, unsigned col)

Definition at line 407 of file interplayacm.c.

Function Documentation

◆ decode_init()

static av_cold int decode_init ( AVCodecContext avctx)
static

Definition at line 57 of file interplayacm.c.

◆ zero()

static int zero ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 107 of file interplayacm.c.

◆ bad()

static int bad ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 116 of file interplayacm.c.

◆ linear()

static int linear ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 121 of file interplayacm.c.

Referenced by resample_init().

◆ k13()

static int k13 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 134 of file interplayacm.c.

◆ k12()

static int k12 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 159 of file interplayacm.c.

◆ k24()

static int k24 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 177 of file interplayacm.c.

◆ k23()

static int k23 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 203 of file interplayacm.c.

◆ k35()

static int k35 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 221 of file interplayacm.c.

◆ k34()

static int k34 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 255 of file interplayacm.c.

◆ k45()

static int k45 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 280 of file interplayacm.c.

◆ k44()

static int k44 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 307 of file interplayacm.c.

◆ t15()

static int t15 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 325 of file interplayacm.c.

Referenced by iadst16_1d(), itxfm_wrap(), and pred8x8l_down_left().

◆ t27()

static int t27 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 354 of file interplayacm.c.

Referenced by itxfm_wrap().

◆ t37()

static int t37 ( InterplayACMContext s,
unsigned  ind,
unsigned  col 
)
static

Definition at line 383 of file interplayacm.c.

◆ fill_block()

static int fill_block ( InterplayACMContext s)
static

Definition at line 420 of file interplayacm.c.

Referenced by decode_block().

◆ juggle()

static void juggle ( int wrap_p,
int block_p,
unsigned  sub_len,
unsigned  sub_count 
)
static

Definition at line 435 of file interplayacm.c.

Referenced by juggle_block().

◆ juggle_block()

static void juggle_block ( InterplayACMContext s)
static

Definition at line 461 of file interplayacm.c.

Referenced by decode_block().

◆ decode_block()

static int decode_block ( InterplayACMContext s)
static

Definition at line 514 of file interplayacm.c.

Referenced by decode_frame().

◆ decode_frame()

static int decode_frame ( AVCodecContext avctx,
void data,
int got_frame_ptr,
AVPacket pkt 
)
static

Definition at line 543 of file interplayacm.c.

◆ decode_close()

static av_cold int decode_close ( AVCodecContext avctx)
static

Definition at line 610 of file interplayacm.c.

Variable Documentation

◆ map_1bit

const int8_t map_1bit[] = { -1, +1 }
static

Definition at line 28 of file interplayacm.c.

Referenced by k12(), k13(), k34(), and k35().

◆ map_2bit_near

const int8_t map_2bit_near[] = { -2, -1, +1, +2 }
static

Definition at line 29 of file interplayacm.c.

Referenced by k23(), and k24().

◆ map_2bit_far

const int8_t map_2bit_far[] = { -3, -2, +2, +3 }
static

Definition at line 30 of file interplayacm.c.

Referenced by k34(), and k35().

◆ map_3bit

const int8_t map_3bit[] = { -4, -3, -2, -1, +1, +2, +3, +4 }
static

Definition at line 31 of file interplayacm.c.

Referenced by k44(), and k45().

◆ mul_3x3

int mul_3x3[3 *3 *3]
static

Definition at line 33 of file interplayacm.c.

Referenced by decode_init(), and t15().

◆ mul_3x5

int mul_3x5[5 *5 *5]
static

Definition at line 34 of file interplayacm.c.

Referenced by decode_init(), and t27().

◆ mul_2x11

int mul_2x11[11 * 11]
static

Definition at line 35 of file interplayacm.c.

Referenced by decode_init(), and t37().

◆ filler_list

const filler filler_list[]
static
Initial value:
= {
k24, k23, t27, k35,
k34, bad, k45, k44,
bad, t37, bad, bad,
}
static int linear(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:121
static int k24(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:177
static int k35(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:221
static int k44(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:307
static int t15(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:325
static int t27(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:354
static int k34(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:255
static int zero(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:107
static int k12(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:159
static int k13(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:134
static int t37(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:383
static int k23(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:203
static int bad(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:116
static int k45(InterplayACMContext *s, unsigned ind, unsigned col)
Definition: interplayacm.c:280

Definition at line 409 of file interplayacm.c.

Referenced by fill_block().

◆ ff_interplay_acm_decoder

AVCodec ff_interplay_acm_decoder
Initial value:
= {
.name = "interplayacm",
.long_name = NULL_IF_CONFIG_SMALL("Interplay ACM"),
.init = decode_init,
.close = decode_close,
.decode = decode_frame,
.priv_data_size = sizeof(InterplayACMContext),
}
static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame_ptr, AVPacket *pkt)
Definition: interplayacm.c:543
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition: avcodec.h:984
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
static av_cold int decode_close(AVCodecContext *avctx)
Definition: interplayacm.c:610
static av_cold int decode_init(AVCodecContext *avctx)
Definition: interplayacm.c:57
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:959

Definition at line 623 of file interplayacm.c.