libavcodec/mss2.c File Reference

Microsoft Screen 2 (aka Windows Media Video V9 Screen) decoder. More...

#include "libavutil/avassert.h"
#include "msmpeg4data.h"
#include "vc1.h"
#include "mss12.h"
#include "mss2dsp.h"

Go to the source code of this file.

Data Structures

struct  MSS2Context
struct  Rectangle

Defines

#define READ_PAIR(a, b)
#define MAX_WMV9_RECTANGLES   20
#define ARITH2_PADDING   2

Functions

static void arith2_normalise (ArithCoder *c)
static int arith2_get_scaled_value (int value, int n, int range)
static void arith2_rescale_interval (ArithCoder *c, int range, int low, int high, int n)
static int arith2_get_number (ArithCoder *c, int n)
static int arith2_get_prob (ArithCoder *c, int16_t *probs)
static int arith2_get_consumed_bytes (ArithCoder *c)
static void arith2_init (ArithCoder *c, GetByteContext *gB)
static int decode_pal_v2 (MSS12Context *ctx, const uint8_t *buf, int buf_size)
static int decode_555 (GetByteContext *gB, uint16_t *dst, int stride, int keyframe, int w, int h)
static int decode_rle (GetBitContext *gb, uint8_t *pal_dst, int pal_stride, uint8_t *rgb_dst, int rgb_stride, uint32_t *pal, int keyframe, int kf_slipt, int slice, int w, int h)
static int decode_wmv9 (AVCodecContext *avctx, const uint8_t *buf, int buf_size, int x, int y, int w, int h, int wmv9_mask)
static int mss2_decode_frame (AVCodecContext *avctx, void *data, int *data_size, AVPacket *avpkt)
static av_cold int wmv9_init (AVCodecContext *avctx)
static av_cold int mss2_decode_end (AVCodecContext *avctx)
static av_cold int mss2_decode_init (AVCodecContext *avctx)

Variables

AVCodec ff_mss2_decoder


Detailed Description

Microsoft Screen 2 (aka Windows Media Video V9 Screen) decoder.

Definition in file mss2.c.


Define Documentation

#define ARITH2_PADDING   2

Definition at line 461 of file mss2.c.

Referenced by mss2_decode_frame().

#define MAX_WMV9_RECTANGLES   20

Definition at line 460 of file mss2.c.

Referenced by mss2_decode_frame().

#define READ_PAIR ( a,
 ) 

Value:

a  = bytestream2_get_byte(gB) << 4; \
    t  = bytestream2_get_byte(gB);      \
    a |= t >> 4;                        \
    b  = (t & 0xF) << 8;                \
    b |= bytestream2_get_byte(gB);      \

Referenced by decode_555().


Function Documentation

static int arith2_get_consumed_bytes ( ArithCoder c  )  [static]

Definition at line 131 of file mss2.c.

Referenced by mss2_decode_frame().

static int arith2_get_number ( ArithCoder c,
int  n 
) [static]

Definition at line 89 of file mss2.c.

Referenced by arith2_init(), and mss2_decode_frame().

static int arith2_get_prob ( ArithCoder c,
int16_t probs 
) [static]

Definition at line 109 of file mss2.c.

static int arith2_get_scaled_value ( int  value,
int  n,
int  range 
) [static]

Definition at line 61 of file mss2.c.

Referenced by arith2_get_number(), and arith2_get_prob().

static void arith2_init ( ArithCoder c,
GetByteContext gB 
) [static]

Definition at line 145 of file mss2.c.

Referenced by mss2_decode_frame().

static void arith2_normalise ( ArithCoder c  )  [static]

Definition at line 42 of file mss2.c.

Referenced by arith2_get_number().

static void arith2_rescale_interval ( ArithCoder c,
int  range,
int  low,
int  high,
int  n 
) [static]

Definition at line 71 of file mss2.c.

Referenced by arith2_get_number(), and arith2_get_prob().

static int decode_555 ( GetByteContext gB,
uint16_t *  dst,
int  stride,
int  keyframe,
int  w,
int  h 
) [static]

Definition at line 172 of file mss2.c.

Referenced by mss2_decode_frame().

static int decode_pal_v2 ( MSS12Context ctx,
const uint8_t buf,
int  buf_size 
) [static]

Definition at line 155 of file mss2.c.

Referenced by mss2_decode_frame().

static int decode_rle ( GetBitContext gb,
uint8_t pal_dst,
int  pal_stride,
uint8_t rgb_dst,
int  rgb_stride,
uint32_t *  pal,
int  keyframe,
int  kf_slipt,
int  slice,
int  w,
int  h 
) [static]

Definition at line 230 of file mss2.c.

static int decode_wmv9 ( AVCodecContext avctx,
const uint8_t buf,
int  buf_size,
int  x,
int  y,
int  w,
int  h,
int  wmv9_mask 
) [static]

Definition at line 367 of file mss2.c.

Referenced by mss2_decode_frame().

static av_cold int mss2_decode_end ( AVCodecContext avctx  )  [static]

Definition at line 812 of file mss2.c.

Referenced by mss2_decode_init().

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

Definition at line 463 of file mss2.c.

static av_cold int mss2_decode_init ( AVCodecContext avctx  )  [static]

Definition at line 829 of file mss2.c.

static av_cold int wmv9_init ( AVCodecContext avctx  )  [static]

Definition at line 749 of file mss2.c.

Referenced by mss2_decode_init().


Variable Documentation

Initial value:

 {
    .name           = "mss2",
    .type           = AVMEDIA_TYPE_VIDEO,
    .id             = AV_CODEC_ID_MSS2,
    .priv_data_size = sizeof(MSS2Context),
    .init           = mss2_decode_init,
    .close          = mss2_decode_end,
    .decode         = mss2_decode_frame,
    .capabilities   = CODEC_CAP_DR1,
    .long_name      = NULL_IF_CONFIG_SMALL("MS Windows Media Video V9 Screen"),
}

Definition at line 857 of file mss2.c.


Generated on Fri Oct 26 02:50:06 2012 for FFmpeg by  doxygen 1.5.8