vc1dec.c File Reference

VC-1 and WMV3 decoder. More...

#include "internal.h"
#include "avcodec.h"
#include "error_resilience.h"
#include "mpegvideo.h"
#include "h263.h"
#include "h264chroma.h"
#include "vc1.h"
#include "vc1data.h"
#include "vc1acdata.h"
#include "msmpeg4data.h"
#include "unary.h"
#include "mathops.h"
#include "vdpau_internal.h"
#include "libavutil/avassert.h"
#include <assert.h>
Include dependency graph for vc1dec.c:

Go to the source code of this file.

Macros

#define MB_INTRA_VLC_BITS   9
 
#define DC_VLC_BITS   9
 
#define inc_blk_idx(idx)
 
#define transpose(x)   ((x >> 3) | ((x & 7) << 3))
 

Enumerations

VC-1 Bitplane decoding
See also
8.7, p56
enum  Imode {
  IMODE_RAW, IMODE_NORM2, IMODE_DIFF2, IMODE_NORM6,
  IMODE_DIFF6, IMODE_ROWSKIP, IMODE_COLSKIP, IMODE_RAW,
  IMODE_NORM2, IMODE_DIFF2, IMODE_NORM6, IMODE_DIFF6,
  IMODE_ROWSKIP, IMODE_COLSKIP
}
 Imode types. More...
 

Functions

static void init_block_index (VC1Context *v)
 
static void vc1_put_signed_blocks_clamped (VC1Context *v)
 
static void vc1_loop_filter_iblk (VC1Context *v, int pq)
 
static void vc1_loop_filter_iblk_delayed (VC1Context *v, int pq)
 
static void vc1_smooth_overlap_filter_iblk (VC1Context *v)
 
static void vc1_mc_1mv (VC1Context *v, int dir)
 Do motion compensation over 1 macroblock Mostly adapted hpel_motion and qpel_motion from mpegvideo.c. More...
 
static int median4 (int a, int b, int c, int d)
 
static void vc1_mc_4mv_luma (VC1Context *v, int n, int dir, int avg)
 Do motion compensation for 4-MV macroblock - luminance block. More...
 
static av_always_inline int get_chroma_mv (int *mvx, int *mvy, int *a, int flag, int *tx, int *ty)
 
static void vc1_mc_4mv_chroma (VC1Context *v, int dir)
 Do motion compensation for 4-MV macroblock - both chroma blocks. More...
 
static void vc1_mc_4mv_chroma4 (VC1Context *v)
 Do motion compensation for 4-MV field chroma macroblock (both U and V) More...
 
static av_always_inline void vc1_apply_p_v_loop_filter (VC1Context *v, int block_num)
 
static av_always_inline void vc1_apply_p_h_loop_filter (VC1Context *v, int block_num)
 
static void vc1_apply_p_loop_filter (VC1Context *v)
 
static int vc1_decode_p_mb (VC1Context *v)
 Decode one P-frame MB. More...
 
static int vc1_decode_p_mb_intfr (VC1Context *v)
 
static int vc1_decode_p_mb_intfi (VC1Context *v)
 
static void vc1_decode_b_mb (VC1Context *v)
 Decode one B-frame MB (in Main profile) More...
 
static void vc1_decode_b_mb_intfi (VC1Context *v)
 Decode one B-frame MB (in interlaced field B picture) More...
 
static int vc1_decode_b_mb_intfr (VC1Context *v)
 Decode one B-frame MB (in interlaced frame B picture) More...
 
static void vc1_decode_i_blocks (VC1Context *v)
 Decode blocks of I-frame. More...
 
static void vc1_decode_i_blocks_adv (VC1Context *v)
 Decode blocks of I-frame for advanced profile. More...
 
static void vc1_decode_p_blocks (VC1Context *v)
 
static void vc1_decode_b_blocks (VC1Context *v)
 
static void vc1_decode_skip_blocks (VC1Context *v)
 
void ff_vc1_decode_blocks (VC1Context *v)
 
av_cold int ff_vc1_decode_init_alloc_tables (VC1Context *v)
 
av_cold void ff_vc1_init_transposed_scantables (VC1Context *v)
 
static av_cold int vc1_decode_init (AVCodecContext *avctx)
 Initialize a VC1/WMV3 decoder. More...
 
av_cold int ff_vc1_decode_end (AVCodecContext *avctx)
 Close a VC1/WMV3 decoder. More...
 
static int vc1_decode_frame (AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
 Decode a VC1/WMV3 frame. More...
 
VC1 Macroblock-level functions in Simple/Main Profiles
See also
7.1.4, p91 and 8.1.1.7, p(1)04
static int vc1_coded_block_pred (MpegEncContext *s, int n, uint8_t **coded_block_ptr)
 
static void vc1_decode_ac_coeff (VC1Context *v, int *last, int *skip, int *value, int codingset)
 Decode one AC coefficient. More...
 
static int vc1_decode_i_block (VC1Context *v, int16_t block[64], int n, int coded, int codingset)
 Decode intra block in intra frames - should be faster than decode_intra_block. More...
 
static int vc1_decode_i_block_adv (VC1Context *v, int16_t block[64], int n, int coded, int codingset, int mquant)
 Decode intra block in intra frames - should be faster than decode_intra_block. More...
 
static int vc1_decode_intra_block (VC1Context *v, int16_t block[64], int n, int coded, int mquant, int codingset)
 Decode intra block in inter frames - more generic version than vc1_decode_i_block. More...
 
static int vc1_decode_p_block (VC1Context *v, int16_t block[64], int n, int mquant, int ttmb, int first_block, uint8_t *dst, int linesize, int skip_block, int *ttmb_out)
 Decode P block. More...
 

Variables

static const int offset_table1 [9] = { 0, 1, 2, 4, 8, 16, 32, 64, 128 }
 
static const int offset_table2 [9] = { 0, 1, 3, 7, 15, 31, 63, 127, 255 }
 
static const int size_table [6] = { 0, 2, 3, 4, 5, 8 }
 
static const int offset_table [6] = { 0, 1, 3, 7, 15, 31 }
 
static const AVProfile profiles []
 
static enum AVPixelFormat vc1_hwaccel_pixfmt_list_420 []
 
AVCodec ff_vc1_decoder
 

VC-1 Block-level functions

See also
7.1.4, p91 and 8.1.1.7, p(1)04
#define GET_MQUANT()
 Get macroblock-level quantizer scale. More...
 
#define GET_MVDATA(_dmv_x, _dmv_y)
 Get MV differentials. More...
 
static av_always_inline void get_mvdata_interlaced (VC1Context *v, int *dmv_x, int *dmv_y, int *pred_flag)
 
static av_always_inline int scaleforsame_x (VC1Context *v, int n, int dir)
 
static av_always_inline int scaleforsame_y (VC1Context *v, int i, int n, int dir)
 
static av_always_inline int scaleforopp_x (VC1Context *v, int n)
 
static av_always_inline int scaleforopp_y (VC1Context *v, int n, int dir)
 
static av_always_inline int scaleforsame (VC1Context *v, int i, int n, int dim, int dir)
 
static av_always_inline int scaleforopp (VC1Context *v, int n, int dim, int dir)
 
static void vc1_pred_mv (VC1Context *v, int n, int dmv_x, int dmv_y, int mv1, int r_x, int r_y, uint8_t *is_intra, int pred_flag, int dir)
 Predict and set motion vector. More...
 
static void vc1_pred_mv_intfr (VC1Context *v, int n, int dmv_x, int dmv_y, int mvn, int r_x, int r_y, uint8_t *is_intra, int dir)
 Predict and set motion vector for interlaced frame picture MBs. More...
 
static void vc1_interp_mc (VC1Context *v)
 Motion compensation for direct or interpolated blocks in B-frames. More...
 
static av_always_inline int scale_mv (int value, int bfrac, int inv, int qs)
 
static void vc1_b_mc (VC1Context *v, int dmv_x[2], int dmv_y[2], int direct, int mode)
 Reconstruct motion vector for B-frame and do motion compensation. More...
 
static void vc1_pred_b_mv (VC1Context *v, int dmv_x[2], int dmv_y[2], int direct, int mvtype)
 
static void vc1_pred_b_mv_intfi (VC1Context *v, int n, int *dmv_x, int *dmv_y, int mv1, int *pred_flag)
 
static int vc1_i_pred_dc (MpegEncContext *s, int overlap, int pq, int n, int16_t **dc_val_ptr, int *dir_ptr)
 Get predicted DC value for I-frames only prediction dir: left=0, top=1. More...
 
static int vc1_pred_dc (MpegEncContext *s, int overlap, int pq, int n, int a_avail, int c_avail, int16_t **dc_val_ptr, int *dir_ptr)
 Get predicted DC value prediction dir: left=0, top=1. More...
 

Detailed Description

VC-1 and WMV3 decoder.

Definition in file vc1dec.c.

Macro Definition Documentation

#define DC_VLC_BITS   9

Definition at line 48 of file vc1dec.c.

Referenced by vc1_decode_i_block(), vc1_decode_i_block_adv(), and vc1_decode_intra_block().

#define GET_MQUANT ( )
#define GET_MVDATA (   _dmv_x,
  _dmv_y 
)

Get MV differentials.

See also
MVDATA decoding from 8.3.5.2, p(1)20
Parameters
_dmv_xHorizontal differential for decoded MV
_dmv_yVertical differential for decoded MV

Definition at line 1097 of file vc1dec.c.

Referenced by vc1_decode_b_mb(), and vc1_decode_p_mb().

#define inc_blk_idx (   idx)
Value:
do { \
idx++; \
if (idx >= v->n_allocated_blks) \
idx = 0; \
} while (0)
float v
initialize output if(nPeaks >3)%at least 3 peaks in spectrum for trying to find f0 nf0peaks

Referenced by vc1_put_signed_blocks_clamped().

#define MB_INTRA_VLC_BITS   9

Definition at line 47 of file vc1dec.c.

Referenced by vc1_decode_i_blocks(), and vc1_decode_i_blocks_adv().

#define transpose (   x)    ((x >> 3) | ((x & 7) << 3))

Enumeration Type Documentation

enum Imode

Imode types.

Enumerator
IMODE_RAW 
IMODE_NORM2 
IMODE_DIFF2 
IMODE_NORM6 
IMODE_DIFF6 
IMODE_ROWSKIP 
IMODE_COLSKIP 
IMODE_RAW 
IMODE_NORM2 
IMODE_DIFF2 
IMODE_NORM6 
IMODE_DIFF6 
IMODE_ROWSKIP 
IMODE_COLSKIP 

Definition at line 66 of file vc1dec.c.

Function Documentation

void ff_vc1_decode_blocks ( VC1Context v)

Definition at line 5124 of file vc1dec.c.

Referenced by decode_wmv9(), vc1_decode_frame(), and vc1_unescape_buffer().

av_cold int ff_vc1_decode_end ( AVCodecContext avctx)

Close a VC1/WMV3 decoder.

Warning
Initial try at using MpegEncContext stuff

Definition at line 5663 of file vc1dec.c.

Referenced by mss2_decode_end(), vc1_decode_frame(), vc1_decode_init(), and vc1_unescape_buffer().

av_cold int ff_vc1_decode_init_alloc_tables ( VC1Context v)

Definition at line 5433 of file vc1dec.c.

Referenced by vc1_decode_frame(), vc1_decode_init(), vc1_unescape_buffer(), and wmv9_init().

av_cold void ff_vc1_init_transposed_scantables ( VC1Context v)

Definition at line 5499 of file vc1dec.c.

Referenced by vc1_decode_init(), vc1_unescape_buffer(), and wmv9_init().

static av_always_inline int get_chroma_mv ( int *  mvx,
int *  mvy,
int *  a,
int  flag,
int *  tx,
int *  ty 
)
static

Definition at line 739 of file vc1dec.c.

Referenced by vc1_mc_4mv_chroma().

static av_always_inline void get_mvdata_interlaced ( VC1Context v,
int *  dmv_x,
int *  dmv_y,
int *  pred_flag 
)
static
static void init_block_index ( VC1Context v)
static
static int median4 ( int  a,
int  b,
int  c,
int  d 
)
inlinestatic

Definition at line 546 of file vc1dec.c.

Referenced by get_chroma_mv(), and vc1_mc_4mv_luma().

static av_always_inline int scale_mv ( int  value,
int  bfrac,
int  inv,
int  qs 
)
static

Definition at line 1997 of file vc1dec.c.

Referenced by vc1_decode_b_mb_intfr(), vc1_pred_b_mv(), and vc1_pred_b_mv_intfi().

static av_always_inline int scaleforopp ( VC1Context v,
int  n,
int  dim,
int  dir 
)
static

Definition at line 1354 of file vc1dec.c.

Referenced by vc1_pred_mv().

static av_always_inline int scaleforopp_x ( VC1Context v,
int  n 
)
static

Definition at line 1275 of file vc1dec.c.

Referenced by scaleforopp().

static av_always_inline int scaleforopp_y ( VC1Context v,
int  n,
int  dir 
)
static

Definition at line 1302 of file vc1dec.c.

Referenced by scaleforopp().

static av_always_inline int scaleforsame ( VC1Context v,
int  i,
int  n,
int  dim,
int  dir 
)
static

Definition at line 1333 of file vc1dec.c.

Referenced by vc1_pred_mv().

static av_always_inline int scaleforsame_x ( VC1Context v,
int  n,
int  dir 
)
static

Definition at line 1205 of file vc1dec.c.

Referenced by scaleforsame().

static av_always_inline int scaleforsame_y ( VC1Context v,
int  i,
int  n,
int  dir 
)
static

Definition at line 1238 of file vc1dec.c.

Referenced by scaleforsame().

static av_always_inline void vc1_apply_p_h_loop_filter ( VC1Context v,
int  block_num 
)
static

Definition at line 3381 of file vc1dec.c.

Referenced by vc1_apply_p_loop_filter().

static void vc1_apply_p_loop_filter ( VC1Context v)
static

Definition at line 3441 of file vc1dec.c.

Referenced by vc1_decode_p_blocks().

static av_always_inline void vc1_apply_p_v_loop_filter ( VC1Context v,
int  block_num 
)
static

Definition at line 3317 of file vc1dec.c.

Referenced by vc1_apply_p_loop_filter().

static void vc1_b_mc ( VC1Context v,
int  dmv_x[2],
int  dmv_y[2],
int  direct,
int  mode 
)
inlinestatic

Reconstruct motion vector for B-frame and do motion compensation.

Definition at line 2018 of file vc1dec.c.

Referenced by vc1_decode_b_mb(), and vc1_decode_b_mb_intfi().

static int vc1_coded_block_pred ( MpegEncContext s,
int  n,
uint8_t **  coded_block_ptr 
)
inlinestatic

Definition at line 2468 of file vc1dec.c.

Referenced by vc1_decode_i_blocks(), and vc1_decode_i_blocks_adv().

static void vc1_decode_ac_coeff ( VC1Context v,
int *  last,
int *  skip,
int *  value,
int  codingset 
)
static

Decode one AC coefficient.

Parameters
vThe VC1 context
lastLast coefficient
skipHow much zero coefficients to skip
valueDecoded AC coefficient value
codingsetset of VLC to decode data
See also
8.1.3.4

Definition at line 2504 of file vc1dec.c.

Referenced by vc1_decode_i_block(), vc1_decode_i_block_adv(), vc1_decode_intra_block(), and vc1_decode_p_block().

static void vc1_decode_b_blocks ( VC1Context v)
static

Definition at line 5040 of file vc1dec.c.

Referenced by ff_vc1_decode_blocks().

static void vc1_decode_b_mb ( VC1Context v)
static

Decode one B-frame MB (in Main profile)

Definition at line 4037 of file vc1dec.c.

Referenced by vc1_decode_b_blocks().

static void vc1_decode_b_mb_intfi ( VC1Context v)
static

Decode one B-frame MB (in interlaced field B picture)

Definition at line 4189 of file vc1dec.c.

Referenced by vc1_decode_b_blocks().

static int vc1_decode_b_mb_intfr ( VC1Context v)
static

Decode one B-frame MB (in interlaced frame B picture)

Definition at line 4342 of file vc1dec.c.

Referenced by vc1_decode_b_blocks().

static int vc1_decode_frame ( AVCodecContext avctx,
void data,
int *  got_frame,
AVPacket avpkt 
)
static

Decode a VC1/WMV3 frame.

Todo:
TODO: Handle VC-1 IDUs (Transport level?)

Definition at line 5699 of file vc1dec.c.

static int vc1_decode_i_block ( VC1Context v,
int16_t  block[64],
int  n,
int  coded,
int  codingset 
)
static

Decode intra block in intra frames - should be faster than decode_intra_block.

Parameters
vVC1Context
blockblock to decode
[in]nsubblock index
codedare AC coeffs present or not
codingsetset of VLC to decode data

Definition at line 2570 of file vc1dec.c.

Referenced by vc1_decode_i_blocks().

static int vc1_decode_i_block_adv ( VC1Context v,
int16_t  block[64],
int  n,
int  coded,
int  codingset,
int  mquant 
)
static

Decode intra block in intra frames - should be faster than decode_intra_block.

Parameters
vVC1Context
blockblock to decode
[in]nsubblock number
codedare AC coeffs present or not
codingsetset of VLC to decode data
mquantquantizer value for this macroblock

Definition at line 2733 of file vc1dec.c.

Referenced by vc1_decode_i_blocks_adv().

static void vc1_decode_i_blocks ( VC1Context v)
static

Decode blocks of I-frame.

Definition at line 4691 of file vc1dec.c.

Referenced by ff_vc1_decode_blocks().

static void vc1_decode_i_blocks_adv ( VC1Context v)
static

Decode blocks of I-frame for advanced profile.

Definition at line 4831 of file vc1dec.c.

Referenced by ff_vc1_decode_blocks().

static av_cold int vc1_decode_init ( AVCodecContext avctx)
static

Initialize a VC1/WMV3 decoder.

Todo:

TODO: Handle VC-1 IDUs (Transport level?)

TODO: Decypher remaining bits in extra_data

Definition at line 5518 of file vc1dec.c.

static int vc1_decode_intra_block ( VC1Context v,
int16_t  block[64],
int  n,
int  coded,
int  mquant,
int  codingset 
)
static

Decode intra block in inter frames - more generic version than vc1_decode_i_block.

Parameters
vVC1Context
blockblock to decode
[in]nsubblock index
codedare AC coeffs present or not
mquantblock quantizer
codingsetset of VLC to decode data

Definition at line 2945 of file vc1dec.c.

Referenced by vc1_decode_b_mb(), vc1_decode_b_mb_intfi(), vc1_decode_b_mb_intfr(), vc1_decode_p_mb(), vc1_decode_p_mb_intfi(), and vc1_decode_p_mb_intfr().

static int vc1_decode_p_block ( VC1Context v,
int16_t  block[64],
int  n,
int  mquant,
int  ttmb,
int  first_block,
uint8_t dst,
int  linesize,
int  skip_block,
int *  ttmb_out 
)
static
static void vc1_decode_p_blocks ( VC1Context v)
static

Definition at line 4965 of file vc1dec.c.

Referenced by ff_vc1_decode_blocks().

static int vc1_decode_p_mb ( VC1Context v)
static

Decode one P-frame MB.

Definition at line 3468 of file vc1dec.c.

Referenced by vc1_decode_p_blocks().

static int vc1_decode_p_mb_intfi ( VC1Context v)
static

Definition at line 3918 of file vc1dec.c.

Referenced by vc1_decode_p_blocks().

static int vc1_decode_p_mb_intfr ( VC1Context v)
static

Definition at line 3707 of file vc1dec.c.

Referenced by vc1_decode_p_blocks().

static void vc1_decode_skip_blocks ( VC1Context v)
static

Definition at line 5103 of file vc1dec.c.

Referenced by ff_vc1_decode_blocks().

static int vc1_i_pred_dc ( MpegEncContext s,
int  overlap,
int  pq,
int  n,
int16_t **  dc_val_ptr,
int *  dir_ptr 
)
inlinestatic

Get predicted DC value for I-frames only prediction dir: left=0, top=1.

Parameters
sMpegEncContext
overlapflag indicating that overlap filtering is used
pqinteger part of picture quantizer
[in]nblock index in the current MB
dc_val_ptrPointer to DC predictor
dir_ptrPrediction direction for use in AC prediction

Definition at line 2326 of file vc1dec.c.

Referenced by vc1_decode_i_block().

static void vc1_interp_mc ( VC1Context v)
static

Motion compensation for direct or interpolated blocks in B-frames.

Definition at line 1861 of file vc1dec.c.

Referenced by vc1_b_mc(), and vc1_decode_b_mb_intfr().

static void vc1_loop_filter_iblk ( VC1Context v,
int  pq 
)
static

Definition at line 170 of file vc1dec.c.

Referenced by vc1_decode_b_blocks(), and vc1_decode_i_blocks().

static void vc1_loop_filter_iblk_delayed ( VC1Context v,
int  pq 
)
static

Definition at line 197 of file vc1dec.c.

Referenced by vc1_decode_i_blocks_adv().

static void vc1_mc_1mv ( VC1Context v,
int  dir 
)
static

Do motion compensation over 1 macroblock Mostly adapted hpel_motion and qpel_motion from mpegvideo.c.

Definition at line 345 of file vc1dec.c.

Referenced by vc1_b_mc(), vc1_decode_b_mb_intfr(), vc1_decode_p_mb(), vc1_decode_p_mb_intfi(), and vc1_decode_p_mb_intfr().

static void vc1_mc_4mv_chroma ( VC1Context v,
int  dir 
)
static

Do motion compensation for 4-MV macroblock - both chroma blocks.

Definition at line 794 of file vc1dec.c.

Referenced by vc1_decode_b_mb_intfi(), vc1_decode_p_mb(), and vc1_decode_p_mb_intfi().

static void vc1_mc_4mv_chroma4 ( VC1Context v)
static

Do motion compensation for 4-MV field chroma macroblock (both U and V)

Definition at line 959 of file vc1dec.c.

Referenced by vc1_decode_b_mb_intfr(), and vc1_decode_p_mb_intfr().

static void vc1_mc_4mv_luma ( VC1Context v,
int  n,
int  dir,
int  avg 
)
static

Do motion compensation for 4-MV macroblock - luminance block.

Definition at line 559 of file vc1dec.c.

Referenced by vc1_decode_b_mb_intfi(), vc1_decode_b_mb_intfr(), vc1_decode_p_mb(), vc1_decode_p_mb_intfi(), and vc1_decode_p_mb_intfr().

static void vc1_pred_b_mv ( VC1Context v,
int  dmv_x[2],
int  dmv_y[2],
int  direct,
int  mvtype 
)
inlinestatic

Definition at line 2047 of file vc1dec.c.

Referenced by vc1_decode_b_mb().

static void vc1_pred_b_mv_intfi ( VC1Context v,
int  n,
int *  dmv_x,
int *  dmv_y,
int  mv1,
int *  pred_flag 
)
inlinestatic

Definition at line 2260 of file vc1dec.c.

Referenced by vc1_decode_b_mb_intfi().

static int vc1_pred_dc ( MpegEncContext s,
int  overlap,
int  pq,
int  n,
int  a_avail,
int  c_avail,
int16_t **  dc_val_ptr,
int *  dir_ptr 
)
inlinestatic

Get predicted DC value prediction dir: left=0, top=1.

Parameters
sMpegEncContext
overlapflag indicating that overlap filtering is used
pqinteger part of picture quantizer
[in]nblock index in the current MB
a_availflag indicating top block availability
c_availflag indicating left block availability
dc_val_ptrPointer to DC predictor
dir_ptrPrediction direction for use in AC prediction

Definition at line 2391 of file vc1dec.c.

Referenced by vc1_decode_i_block_adv(), and vc1_decode_intra_block().

static void vc1_pred_mv ( VC1Context v,
int  n,
int  dmv_x,
int  dmv_y,
int  mv1,
int  r_x,
int  r_y,
uint8_t is_intra,
int  pred_flag,
int  dir 
)
inlinestatic

Predict and set motion vector.

Definition at line 1380 of file vc1dec.c.

Referenced by vc1_decode_p_mb(), vc1_decode_p_mb_intfi(), and vc1_pred_b_mv_intfi().

static void vc1_pred_mv_intfr ( VC1Context v,
int  n,
int  dmv_x,
int  dmv_y,
int  mvn,
int  r_x,
int  r_y,
uint8_t is_intra,
int  dir 
)
inlinestatic

Predict and set motion vector for interlaced frame picture MBs.

Definition at line 1634 of file vc1dec.c.

Referenced by vc1_decode_b_mb_intfr(), and vc1_decode_p_mb_intfr().

static void vc1_put_signed_blocks_clamped ( VC1Context v)
static

Definition at line 91 of file vc1dec.c.

Referenced by vc1_decode_i_blocks_adv().

static void vc1_smooth_overlap_filter_iblk ( VC1Context v)
static

Definition at line 265 of file vc1dec.c.

Referenced by vc1_decode_i_blocks_adv().

Variable Documentation

AVCodec ff_vc1_decoder
Initial value:
= {
.name = "vc1",
.priv_data_size = sizeof(VC1Context),
.capabilities = CODEC_CAP_DR1 | CODEC_CAP_DELAY,
.long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),
}
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
struct VC1Context VC1Context
The VC1 Context.
static const AVProfile profiles[]
Definition: vc1dec.c:6150
#define CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
#define CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
static av_cold int vc1_decode_init(AVCodecContext *avctx)
Initialize a VC1/WMV3 decoder.
Definition: vc1dec.c:5518
void ff_mpeg_flush(AVCodecContext *avctx)
Definition: mpegvideo.c:3066
av_cold int ff_vc1_decode_end(AVCodecContext *avctx)
Close a VC1/WMV3 decoder.
Definition: vc1dec.c:5663
static void flush(AVCodecContext *avctx)
static void close(AVCodecParserContext *s)
Definition: h264_parser.c:375
static int vc1_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Decode a VC1/WMV3 frame.
Definition: vc1dec.c:5699
static enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[]
Definition: vc1dec.c:6158
static int decode(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Definition: crystalhd.c:868

Definition at line 6172 of file vc1dec.c.

const int offset_table[6] = { 0, 1, 3, 7, 15, 31 }
static

Definition at line 3315 of file vc1dec.c.

Referenced by escape130_decode_frame(), and seq_parse_frame_data().

const int offset_table1[9] = { 0, 1, 2, 4, 8, 16, 32, 64, 128 }
static

Definition at line 52 of file vc1dec.c.

Referenced by get_mvdata_interlaced().

const int offset_table2[9] = { 0, 1, 3, 7, 15, 31, 63, 127, 255 }
static

Definition at line 53 of file vc1dec.c.

Referenced by get_mvdata_interlaced().

const AVProfile profiles[]
static
Initial value:
= {
{ FF_PROFILE_VC1_SIMPLE, "Simple" },
{ FF_PROFILE_VC1_MAIN, "Main" },
{ FF_PROFILE_VC1_COMPLEX, "Complex" },
{ FF_PROFILE_VC1_ADVANCED, "Advanced" },
}
#define FF_PROFILE_VC1_ADVANCED
#define FF_PROFILE_UNKNOWN
#define FF_PROFILE_VC1_COMPLEX
#define FF_PROFILE_VC1_MAIN
#define FF_PROFILE_VC1_SIMPLE

Definition at line 6150 of file vc1dec.c.

const int size_table[6] = { 0, 2, 3, 4, 5, 8 }
static

Definition at line 3314 of file vc1dec.c.

enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[]
static
Initial value:
= {
}
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:68

Definition at line 6158 of file vc1dec.c.