FFmpeg
Macros | Functions | Variables
msmpeg4dec.c File Reference
#include "libavutil/thread.h"
#include "avcodec.h"
#include "codec_internal.h"
#include "mpegutils.h"
#include "mpegvideo.h"
#include "msmpeg4.h"
#include "msmpeg4dec.h"
#include "libavutil/imgutils.h"
#include "h263.h"
#include "h263data.h"
#include "h263dec.h"
#include "mpeg4videodec.h"
#include "msmpeg4data.h"
#include "msmpeg4_vc1_data.h"

Go to the source code of this file.

Macros

#define V2_INTRA_CBPC_VLC_BITS   3
 
#define V2_MB_TYPE_VLC_BITS   7
 
#define MV_VLC_BITS   9
 
#define TEX_VLC_BITS   9
 
#define DEFAULT_INTER_INDEX   3
 

Functions

static int msmpeg4v1_pred_dc (MpegEncContext *s, int n, int32_t **dc_val_ptr)
 
static int msmpeg4v2_decode_motion (MpegEncContext *s, int pred, int f_code)
 
static int msmpeg4v12_decode_mb (MpegEncContext *s, int16_t block[6][64])
 
static int msmpeg4v34_decode_mb (MpegEncContext *s, int16_t block[6][64])
 
static av_cold void msmpeg4_decode_init_static (void)
 
av_cold int ff_msmpeg4_decode_init (AVCodecContext *avctx)
 
int ff_msmpeg4_decode_picture_header (MpegEncContext *s)
 
int ff_msmpeg4_decode_ext_header (MpegEncContext *s, int buf_size)
 
static int msmpeg4_decode_dc (MpegEncContext *s, int n, int *dir_ptr)
 
int ff_msmpeg4_decode_block (MpegEncContext *s, int16_t *block, int n, int coded, const uint8_t *scan_table)
 
void ff_msmpeg4_decode_motion (MpegEncContext *s, int *mx_ptr, int *my_ptr)
 

Variables

const VLCElemff_mb_non_intra_vlc [4]
 
static VLCElem v2_dc_lum_vlc [1472]
 
static VLCElem v2_dc_chroma_vlc [1506]
 
static VLCElem v2_intra_cbpc_vlc [8]
 
static VLCElem v2_mb_type_vlc [128]
 
VLCElem ff_inter_intra_vlc [8]
 
const FFCodec ff_msmpeg4v1_decoder
 
const FFCodec ff_msmpeg4v2_decoder
 
const FFCodec ff_msmpeg4v3_decoder
 
const FFCodec ff_wmv1_decoder
 

Macro Definition Documentation

◆ V2_INTRA_CBPC_VLC_BITS

#define V2_INTRA_CBPC_VLC_BITS   3

Definition at line 41 of file msmpeg4dec.c.

◆ V2_MB_TYPE_VLC_BITS

#define V2_MB_TYPE_VLC_BITS   7

Definition at line 42 of file msmpeg4dec.c.

◆ MV_VLC_BITS

#define MV_VLC_BITS   9

Definition at line 43 of file msmpeg4dec.c.

◆ TEX_VLC_BITS

#define TEX_VLC_BITS   9

Definition at line 44 of file msmpeg4dec.c.

◆ DEFAULT_INTER_INDEX

#define DEFAULT_INTER_INDEX   3

Definition at line 46 of file msmpeg4dec.c.

Function Documentation

◆ msmpeg4v1_pred_dc()

static int msmpeg4v1_pred_dc ( MpegEncContext s,
int  n,
int32_t **  dc_val_ptr 
)
inlinestatic

Definition at line 48 of file msmpeg4dec.c.

Referenced by msmpeg4_decode_dc().

◆ msmpeg4v2_decode_motion()

static int msmpeg4v2_decode_motion ( MpegEncContext s,
int  pred,
int  f_code 
)
static

Definition at line 74 of file msmpeg4dec.c.

Referenced by msmpeg4v12_decode_mb().

◆ msmpeg4v12_decode_mb()

static int msmpeg4v12_decode_mb ( MpegEncContext s,
int16_t  block[6][64] 
)
static

Definition at line 105 of file msmpeg4dec.c.

Referenced by ff_msmpeg4_decode_init().

◆ msmpeg4v34_decode_mb()

static int msmpeg4v34_decode_mb ( MpegEncContext s,
int16_t  block[6][64] 
)
static

Definition at line 206 of file msmpeg4dec.c.

Referenced by ff_msmpeg4_decode_init().

◆ msmpeg4_decode_init_static()

static av_cold void msmpeg4_decode_init_static ( void  )
static

Definition at line 297 of file msmpeg4dec.c.

Referenced by ff_msmpeg4_decode_init().

◆ ff_msmpeg4_decode_init()

av_cold int ff_msmpeg4_decode_init ( AVCodecContext avctx)

Definition at line 354 of file msmpeg4dec.c.

Referenced by wmv2_decode_init().

◆ ff_msmpeg4_decode_picture_header()

int ff_msmpeg4_decode_picture_header ( MpegEncContext s)

Definition at line 388 of file msmpeg4dec.c.

Referenced by ff_h263_decode_frame().

◆ ff_msmpeg4_decode_ext_header()

int ff_msmpeg4_decode_ext_header ( MpegEncContext s,
int  buf_size 
)

Definition at line 544 of file msmpeg4dec.c.

Referenced by ff_h263_decode_frame(), and ff_msmpeg4_decode_picture_header().

◆ msmpeg4_decode_dc()

static int msmpeg4_decode_dc ( MpegEncContext s,
int  n,
int dir_ptr 
)
static

Definition at line 572 of file msmpeg4dec.c.

Referenced by ff_msmpeg4_decode_block().

◆ ff_msmpeg4_decode_block()

int ff_msmpeg4_decode_block ( MpegEncContext s,
int16_t *  block,
int  n,
int  coded,
const uint8_t *  scan_table 
)

◆ ff_msmpeg4_decode_motion()

void ff_msmpeg4_decode_motion ( MpegEncContext s,
int mx_ptr,
int my_ptr 
)

Definition at line 812 of file msmpeg4dec.c.

Referenced by msmpeg4v34_decode_mb(), and wmv2_decode_motion().

Variable Documentation

◆ ff_mb_non_intra_vlc

const VLCElem* ff_mb_non_intra_vlc[4]

Definition at line 66 of file msmpeg4dec.c.

Referenced by msmpeg4_decode_init_static(), msmpeg4v34_decode_mb(), and wmv2_decode_mb().

◆ v2_dc_lum_vlc

VLCElem v2_dc_lum_vlc[1472]
static

Definition at line 67 of file msmpeg4dec.c.

Referenced by msmpeg4_decode_dc(), and msmpeg4_decode_init_static().

◆ v2_dc_chroma_vlc

VLCElem v2_dc_chroma_vlc[1506]
static

Definition at line 68 of file msmpeg4dec.c.

Referenced by msmpeg4_decode_dc(), and msmpeg4_decode_init_static().

◆ v2_intra_cbpc_vlc

VLCElem v2_intra_cbpc_vlc[8]
static

Definition at line 69 of file msmpeg4dec.c.

Referenced by msmpeg4_decode_init_static(), and msmpeg4v12_decode_mb().

◆ v2_mb_type_vlc

VLCElem v2_mb_type_vlc[128]
static

Definition at line 70 of file msmpeg4dec.c.

Referenced by msmpeg4_decode_init_static(), and msmpeg4v12_decode_mb().

◆ ff_inter_intra_vlc

VLCElem ff_inter_intra_vlc[8]

Definition at line 71 of file msmpeg4dec.c.

Referenced by msmpeg4_decode_init_static(), msmpeg4v34_decode_mb(), and wmv2_decode_mb().

◆ ff_msmpeg4v1_decoder

const FFCodec ff_msmpeg4v1_decoder
Initial value:
= {
.p.name = "msmpeg4v1",
CODEC_LONG_NAME("MPEG-4 part 2 Microsoft variant version 1"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(MpegEncContext),
.p.max_lowres = 3,
}

Definition at line 844 of file msmpeg4dec.c.

◆ ff_msmpeg4v2_decoder

const FFCodec ff_msmpeg4v2_decoder
Initial value:
= {
.p.name = "msmpeg4v2",
CODEC_LONG_NAME("MPEG-4 part 2 Microsoft variant version 2"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(MpegEncContext),
.p.max_lowres = 3,
}

Definition at line 858 of file msmpeg4dec.c.

◆ ff_msmpeg4v3_decoder

const FFCodec ff_msmpeg4v3_decoder
Initial value:
= {
.p.name = "msmpeg4",
CODEC_LONG_NAME("MPEG-4 part 2 Microsoft variant version 3"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(MpegEncContext),
.p.max_lowres = 3,
}

Definition at line 872 of file msmpeg4dec.c.

◆ ff_wmv1_decoder

const FFCodec ff_wmv1_decoder
Initial value:
= {
.p.name = "wmv1",
CODEC_LONG_NAME("Windows Media Video 7"),
.p.type = AVMEDIA_TYPE_VIDEO,
.priv_data_size = sizeof(MpegEncContext),
.p.max_lowres = 3,
}

Definition at line 886 of file msmpeg4dec.c.

AV_CODEC_ID_MSMPEG4V2
@ AV_CODEC_ID_MSMPEG4V2
Definition: codec_id.h:67
FF_CODEC_DECODE_CB
#define FF_CODEC_DECODE_CB(func)
Definition: codec_internal.h:287
AV_CODEC_ID_MSMPEG4V1
@ AV_CODEC_ID_MSMPEG4V1
Definition: codec_id.h:66
CODEC_LONG_NAME
#define CODEC_LONG_NAME(str)
Definition: codec_internal.h:272
ff_h263_decode_frame
int ff_h263_decode_frame(AVCodecContext *avctx, AVFrame *pict, int *got_frame, AVPacket *avpkt)
Definition: h263dec.c:424
AV_CODEC_ID_WMV1
@ AV_CODEC_ID_WMV1
Definition: codec_id.h:69
ff_h263_decode_end
av_cold int ff_h263_decode_end(AVCodecContext *avctx)
Definition: h263dec.c:163
init
int(* init)(AVBSFContext *ctx)
Definition: dts2pts.c:365
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
FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
#define FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM
The decoder extracts and fills its parameters even if the frame is skipped due to the skip_frame sett...
Definition: codec_internal.h:54
AVMEDIA_TYPE_VIDEO
@ AVMEDIA_TYPE_VIDEO
Definition: avutil.h:201
AV_CODEC_CAP_DRAW_HORIZ_BAND
#define AV_CODEC_CAP_DRAW_HORIZ_BAND
Decoder can use draw_horiz_band callback.
Definition: codec.h:44
AV_CODEC_ID_MSMPEG4V3
@ AV_CODEC_ID_MSMPEG4V3
Definition: codec_id.h:68
ff_msmpeg4_decode_init
av_cold int ff_msmpeg4_decode_init(AVCodecContext *avctx)
Definition: msmpeg4dec.c:354
MpegEncContext
MpegEncContext.
Definition: mpegvideo.h:67