FFmpeg
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
mss12.h File Reference

Common header for Microsoft Screen 1 and 2. More...

#include "libavutil/intreadwrite.h"
#include "avcodec.h"
#include "get_bits.h"
#include "bytestream.h"

Go to the source code of this file.

Data Structures

struct  Model
 
struct  ArithCoder
 
struct  PixContext
 
struct  SliceContext
 
struct  MSS12Context
 

Macros

#define MODEL_MIN_SYMS   2
 
#define MODEL_MAX_SYMS   256
 
#define THRESH_ADAPTIVE   -1
 
#define THRESH_LOW   15
 
#define THRESH_HIGH   50
 
#define ARITH_GET_BIT(VERSION)
 
#define ARITH_GET_MODEL_SYM(VERSION)
 

Functions

int ff_mss12_decode_rect (SliceContext *ctx, ArithCoder *acoder, int x, int y, int width, int height)
 
void ff_mss12_model_update (Model *m, int val)
 
void ff_mss12_slicecontext_reset (SliceContext *sc)
 
av_cold int ff_mss12_decode_init (MSS12Context *c, int version, SliceContext *sc1, SliceContext *sc2)
 
av_cold int ff_mss12_decode_end (MSS12Context *ctx)
 

Detailed Description

Common header for Microsoft Screen 1 and 2.

Definition in file mss12.h.

Macro Definition Documentation

#define MODEL_MIN_SYMS   2

Definition at line 34 of file mss12.h.

#define MODEL_MAX_SYMS   256

Definition at line 35 of file mss12.h.

#define THRESH_ADAPTIVE   -1

Definition at line 36 of file mss12.h.

Referenced by model_rescale_weights(), pixctx_init(), and slicecontext_init().

#define THRESH_LOW   15

Definition at line 37 of file mss12.h.

Referenced by pixctx_init(), and slicecontext_init().

#define THRESH_HIGH   50

Definition at line 38 of file mss12.h.

Referenced by pixctx_init(), and slicecontext_init().

#define ARITH_GET_BIT (   VERSION)
Value:
static int arith ## VERSION ## _get_bit(ArithCoder *c) \
{ \
int range = c->high - c->low + 1; \
int bit = 2 * c->value - c->low >= c->high; \
if (bit) \
c->low += range >> 1; \
else \
c->high = c->low + (range >> 1) - 1; \
\
arith ## VERSION ## _normalise(c); \
\
return bit; \
}

Definition at line 102 of file mss12.h.

#define ARITH_GET_MODEL_SYM (   VERSION)
Value:
static int arith ## VERSION ## _get_model_sym(ArithCoder *c, Model *m) \
{ \
int idx, val; \
\
idx = arith ## VERSION ## _get_prob(c, m->cum_prob); \
\
val = m->idx2sym[idx]; \
ff_mss12_model_update(m, idx); \
\
arith ## VERSION ## _normalise(c); \
\
return val; \
}

Definition at line 118 of file mss12.h.

Function Documentation

int ff_mss12_decode_rect ( SliceContext ctx,
ArithCoder acoder,
int  x,
int  y,
int  width,
int  height 
)

Definition at line 526 of file mss12.c.

Referenced by ff_mss12_decode_rect(), mss1_decode_frame(), and mss2_decode_frame().

void ff_mss12_model_update ( Model m,
int  val 
)

Definition at line 93 of file mss12.c.

void ff_mss12_slicecontext_reset ( SliceContext sc)

Definition at line 426 of file mss12.c.

Referenced by mss1_decode_frame(), and mss2_decode_frame().

av_cold int ff_mss12_decode_init ( MSS12Context c,
int  version,
SliceContext sc1,
SliceContext sc2 
)

Definition at line 562 of file mss12.c.

Referenced by mss1_decode_init(), and mss2_decode_init().

av_cold int ff_mss12_decode_end ( MSS12Context ctx)

Definition at line 669 of file mss12.c.

Referenced by mss1_decode_end(), and mss2_decode_end().