FFmpeg
Data Structures | Functions | Variables
wmv2dec.c File Reference
#include "libavutil/avassert.h"
#include "libavutil/mem_internal.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "h263dec.h"
#include "intrax8.h"
#include "mathops.h"
#include "mpegutils.h"
#include "mpegvideo.h"
#include "mpegvideodec.h"
#include "msmpeg4.h"
#include "msmpeg4_vc1_data.h"
#include "msmpeg4dec.h"
#include "qpeldsp.h"
#include "simple_idct.h"
#include "wmv2.h"
#include "wmv2data.h"
#include "wmv2dec.h"

Go to the source code of this file.

Data Structures

struct  WMV2DecContext
 

Functions

static void wmv2_mspel8_h_lowpass (uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int h)
 
static void wmv2_mspel8_v_lowpass (uint8_t *dst, const uint8_t *src, int dstStride, int srcStride, int w)
 
static void put_mspel8_mc10_c (uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc20_c (uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc30_c (uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc02_c (uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc12_c (uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc32_c (uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
 
static void put_mspel8_mc22_c (uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
 
static av_cold void wmv2_mspel_init (WMV2DecContext *w)
 
void ff_mspel_motion (MPVContext *const s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t *const *ref_picture, const op_pixels_func(*pix_op)[4], int motion_x, int motion_y, int h)
 
static void wmv2_add_block (WMV2DecContext *w, int16_t blocks1[][64], uint8_t *dst, int stride, int n)
 
void ff_wmv2_add_mb (MpegEncContext *s, int16_t block1[6][64], uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr)
 
static int parse_mb_skip (WMV2DecContext *w)
 
static av_cold int decode_ext_header (AVCodecContext *avctx, WMV2DecContext *w)
 
static int wmv2_decode_picture_header (H263DecContext *const h)
 
int ff_wmv2_decode_secondary_picture_header (H263DecContext *const h)
 
static void wmv2_decode_motion (WMV2DecContext *w, int *mx_ptr, int *my_ptr)
 
static int16_t * wmv2_pred_motion (WMV2DecContext *w, int *px, int *py)
 
static int wmv2_decode_inter_block (WMV2DecContext *w, int16_t *block, int n, int cbp)
 
static int wmv2_decode_mb (H263DecContext *const h)
 
static av_cold int wmv2_decode_init (AVCodecContext *avctx)
 
static av_cold int wmv2_decode_end (AVCodecContext *avctx)
 

Variables

const FFCodec ff_wmv2_decoder
 

Function Documentation

◆ wmv2_mspel8_h_lowpass()

static void wmv2_mspel8_h_lowpass ( uint8_t *  dst,
const uint8_t *  src,
int  dstStride,
int  srcStride,
int  h 
)
static

◆ wmv2_mspel8_v_lowpass()

static void wmv2_mspel8_v_lowpass ( uint8_t *  dst,
const uint8_t *  src,
int  dstStride,
int  srcStride,
int  w 
)
static

◆ put_mspel8_mc10_c()

static void put_mspel8_mc10_c ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride 
)
static

Definition at line 112 of file wmv2dec.c.

Referenced by wmv2_mspel_init().

◆ put_mspel8_mc20_c()

static void put_mspel8_mc20_c ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride 
)
static

Definition at line 120 of file wmv2dec.c.

Referenced by wmv2_mspel_init().

◆ put_mspel8_mc30_c()

static void put_mspel8_mc30_c ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride 
)
static

Definition at line 125 of file wmv2dec.c.

Referenced by wmv2_mspel_init().

◆ put_mspel8_mc02_c()

static void put_mspel8_mc02_c ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride 
)
static

Definition at line 133 of file wmv2dec.c.

Referenced by wmv2_mspel_init().

◆ put_mspel8_mc12_c()

static void put_mspel8_mc12_c ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride 
)
static

Definition at line 138 of file wmv2dec.c.

Referenced by wmv2_mspel_init().

◆ put_mspel8_mc32_c()

static void put_mspel8_mc32_c ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride 
)
static

Definition at line 150 of file wmv2dec.c.

Referenced by wmv2_mspel_init().

◆ put_mspel8_mc22_c()

static void put_mspel8_mc22_c ( uint8_t *  dst,
const uint8_t *  src,
ptrdiff_t  stride 
)
static

Definition at line 162 of file wmv2dec.c.

Referenced by wmv2_mspel_init().

◆ wmv2_mspel_init()

static av_cold void wmv2_mspel_init ( WMV2DecContext w)
static

Definition at line 170 of file wmv2dec.c.

Referenced by wmv2_decode_init().

◆ ff_mspel_motion()

void ff_mspel_motion ( MPVContext *const  s,
uint8_t *  dest_y,
uint8_t *  dest_cb,
uint8_t *  dest_cr,
uint8_t *const *  ref_picture,
const op_pixels_func(*)  pix_op[4],
int  motion_x,
int  motion_y,
int  h 
)

Definition at line 182 of file wmv2dec.c.

Referenced by mpv_motion_internal().

◆ wmv2_add_block()

static void wmv2_add_block ( WMV2DecContext w,
int16_t  blocks1[][64],
uint8_t *  dst,
int  stride,
int  n 
)
static

Definition at line 271 of file wmv2dec.c.

Referenced by ff_wmv2_add_mb().

◆ ff_wmv2_add_mb()

void ff_wmv2_add_mb ( MpegEncContext s,
int16_t  block1[6][64],
uint8_t *  dest_y,
uint8_t *  dest_cb,
uint8_t *  dest_cr 
)

Definition at line 298 of file wmv2dec.c.

Referenced by mpv_reconstruct_mb_internal().

◆ parse_mb_skip()

static int parse_mb_skip ( WMV2DecContext w)
static

Definition at line 315 of file wmv2dec.c.

Referenced by ff_wmv2_decode_secondary_picture_header().

◆ decode_ext_header()

static av_cold int decode_ext_header ( AVCodecContext avctx,
WMV2DecContext w 
)
static

Definition at line 379 of file wmv2dec.c.

Referenced by wmv2_decode_init().

◆ wmv2_decode_picture_header()

static int wmv2_decode_picture_header ( H263DecContext *const  h)
static

Definition at line 417 of file wmv2dec.c.

Referenced by wmv2_decode_init().

◆ ff_wmv2_decode_secondary_picture_header()

int ff_wmv2_decode_secondary_picture_header ( H263DecContext *const  h)

Definition at line 448 of file wmv2dec.c.

Referenced by ff_h263_decode_frame().

◆ wmv2_decode_motion()

static void wmv2_decode_motion ( WMV2DecContext w,
int *  mx_ptr,
int *  my_ptr 
)
inlinestatic

Definition at line 560 of file wmv2dec.c.

Referenced by wmv2_decode_mb().

◆ wmv2_pred_motion()

static int16_t* wmv2_pred_motion ( WMV2DecContext w,
int *  px,
int *  py 
)
static

Definition at line 572 of file wmv2dec.c.

Referenced by wmv2_decode_mb().

◆ wmv2_decode_inter_block()

static int wmv2_decode_inter_block ( WMV2DecContext w,
int16_t *  block,
int  n,
int  cbp 
)
inlinestatic

Definition at line 616 of file wmv2dec.c.

Referenced by wmv2_decode_mb().

◆ wmv2_decode_mb()

static int wmv2_decode_mb ( H263DecContext *const  h)
static

Definition at line 658 of file wmv2dec.c.

Referenced by wmv2_decode_init().

◆ wmv2_decode_init()

static av_cold int wmv2_decode_init ( AVCodecContext avctx)
static

Definition at line 778 of file wmv2dec.c.

◆ wmv2_decode_end()

static av_cold int wmv2_decode_end ( AVCodecContext avctx)
static

Definition at line 799 of file wmv2dec.c.

Variable Documentation

◆ ff_wmv2_decoder

const FFCodec ff_wmv2_decoder
Initial value:
= {
.p.name = "wmv2",
CODEC_LONG_NAME("Windows Media Video 8"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(WMV2DecContext),
.caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
}

Definition at line 807 of file wmv2dec.c.

FF_CODEC_CAP_INIT_CLEANUP
#define FF_CODEC_CAP_INIT_CLEANUP
The codec allows calling the close function for deallocation even if the init function returned a fai...
Definition: codec_internal.h:42
wmv2_decode_end
static av_cold int wmv2_decode_end(AVCodecContext *avctx)
Definition: wmv2dec.c:799
close
static av_cold void close(AVCodecParserContext *s)
Definition: apv_parser.c:197
WMV2DecContext
Definition: wmv2dec.c:41
FF_CODEC_DECODE_CB
#define FF_CODEC_DECODE_CB(func)
Definition: codec_internal.h:347
AV_CODEC_ID_WMV2
@ AV_CODEC_ID_WMV2
Definition: codec_id.h:70
CODEC_LONG_NAME
#define CODEC_LONG_NAME(str)
Definition: codec_internal.h:332
ff_h263_decode_frame
int ff_h263_decode_frame(AVCodecContext *avctx, AVFrame *pict, int *got_frame, AVPacket *avpkt)
Definition: h263dec.c:440
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts.c:550
AV_CODEC_CAP_DR1
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() or get_encode_buffer() for allocating buffers and supports custom allocators.
Definition: codec.h:52
wmv2_decode_init
static av_cold int wmv2_decode_init(AVCodecContext *avctx)
Definition: wmv2dec.c:778
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:200
AV_CODEC_CAP_DRAW_HORIZ_BAND
#define AV_CODEC_CAP_DRAW_HORIZ_BAND
Decoder can use draw_horiz_band callback.
Definition: codec.h:44