Microsoft Screen 2 (aka Windows Media Video V9 Screen) decoder.
More...
#include "libavutil/avassert.h"
#include "libavutil/mem.h"
#include "codec_internal.h"
#include "decode.h"
#include "error_resilience.h"
#include "mpeg_er.h"
#include "mpegvideodec.h"
#include "vc1.h"
#include "wmv2data.h"
#include "mss12.h"
#include "mss2dsp.h"
Go to the source code of this file.
|
| 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 (AVCodecContext *avctx, GetByteContext *gB, uint16_t *dst, ptrdiff_t stride, int keyframe, int w, int h) |
| |
| static int | decode_rle (GetBitContext *gb, uint8_t *pal_dst, ptrdiff_t pal_stride, uint8_t *rgb_dst, ptrdiff_t 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 void | calc_draw_region (struct Rectangle2 *draw, const struct Rectangle2 *rect) |
| |
| static int | calc_split_position (int split_position, const struct Rectangle2 *rect, int height) |
| |
| static int | mss2_decode_frame (AVCodecContext *avctx, AVFrame *frame, int *got_frame, 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) |
| |
Microsoft Screen 2 (aka Windows Media Video V9 Screen) decoder.
Definition in file mss2.c.
◆ READ_PAIR
| #define READ_PAIR |
( |
| a, |
|
|
| b ) |
Value: a = bytestream2_get_byte(gB) << 4; \
t = bytestream2_get_byte(gB); \
b |= bytestream2_get_byte(gB); \
Referenced by decode_555().
◆ COMPARE
| #define COMPARE |
( |
| top, |
|
|
| bottom, |
|
|
| left, |
|
|
| right ) |
Value:
\
} else { \
} \
} \
}
static int draw(AVFilterContext *ctx, void *arg, int jobnr, int nb_jobs)
Referenced by calc_draw_region().
◆ MAX_WMV9_RECTANGLES
| #define MAX_WMV9_RECTANGLES 20 |
◆ ARITH2_PADDING
◆ arith2_normalise()
◆ arith2_get_scaled_value()
| static int arith2_get_scaled_value |
( |
int | value, |
|
|
int | n, |
|
|
int | range ) |
|
static |
◆ arith2_rescale_interval()
| static void arith2_rescale_interval |
( |
ArithCoder * | c, |
|
|
int | range, |
|
|
int | low, |
|
|
int | high, |
|
|
int | n ) |
|
static |
◆ arith2_get_number()
| static int arith2_get_number |
( |
ArithCoder * | c, |
|
|
int | n ) |
|
static |
◆ arith2_get_prob()
| static int arith2_get_prob |
( |
ArithCoder * | c, |
|
|
int16_t * | probs ) |
|
static |
◆ arith2_get_consumed_bytes()
| static int arith2_get_consumed_bytes |
( |
ArithCoder * | c | ) |
|
|
static |
◆ arith2_init()
◆ decode_pal_v2()
| static int decode_pal_v2 |
( |
MSS12Context * | ctx, |
|
|
const uint8_t * | buf, |
|
|
int | buf_size ) |
|
static |
◆ decode_555()
◆ decode_rle()
| static int decode_rle |
( |
GetBitContext * | gb, |
|
|
uint8_t * | pal_dst, |
|
|
ptrdiff_t | pal_stride, |
|
|
uint8_t * | rgb_dst, |
|
|
ptrdiff_t | rgb_stride, |
|
|
uint32_t * | pal, |
|
|
int | keyframe, |
|
|
int | kf_slipt, |
|
|
int | slice, |
|
|
int | w, |
|
|
int | h ) |
|
static |
◆ decode_wmv9()
| 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 |
◆ calc_draw_region()
◆ calc_split_position()
| static int calc_split_position |
( |
int | split_position, |
|
|
const struct Rectangle2 * | rect, |
|
|
int | height ) |
|
static |
◆ mss2_decode_frame()
◆ wmv9_init()
◆ mss2_decode_end()
◆ mss2_decode_init()
◆ ff_mss2_decoder
Initial value:= {
.p.name = "mss2",
}
static av_cold void close(AVCodecParserContext *s)
#define FF_CODEC_DECODE_CB(func)
#define CODEC_LONG_NAME(str)
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
int(* init)(AVBSFContext *ctx)
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
static av_cold int mss2_decode_init(AVCodecContext *avctx)
static int mss2_decode_frame(AVCodecContext *avctx, AVFrame *frame, int *got_frame, AVPacket *avpkt)
static av_cold int mss2_decode_end(AVCodecContext *avctx)
Definition at line 902 of file mss2.c.