FFmpeg
Macros | Functions | Variables
vc1dec.c File Reference
#include "config_components.h"
#include "avcodec.h"
#include "blockdsp.h"
#include "codec_internal.h"
#include "decode.h"
#include "get_bits.h"
#include "h263dec.h"
#include "hwconfig.h"
#include "mpeg_er.h"
#include "mpegvideo.h"
#include "mpegvideodec.h"
#include "msmpeg4_vc1_data.h"
#include "profiles.h"
#include "simple_idct.h"
#include "vc1.h"
#include "vc1data.h"
#include "vc1_vlc_data.h"
#include "libavutil/attributes.h"
#include "libavutil/avassert.h"
#include "libavutil/imgutils.h"
#include "libavutil/thread.h"

Go to the source code of this file.

Macros

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

Functions

static av_cold int vc1_decode_init_alloc_tables (VC1Context *v)
 
static enum AVPixelFormat vc1_get_format (AVCodecContext *avctx)
 
av_cold int ff_vc1_decode_init (AVCodecContext *avctx)
 
av_cold void ff_vc1_init_transposed_scantables (VC1Context *v)
 
static av_cold void vc1_init_static (void)
 
av_cold void ff_vc1_init_common (VC1Context *v)
 Init VC-1 specific tables and VC1Context members. More...
 
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, AVFrame *pict, int *got_frame, AVPacket *avpkt)
 Decode a VC1/WMV3 frame. More...
 

Variables

static const uint16_t vlc_offs []
 
static enum AVPixelFormat vc1_hwaccel_pixfmt_list_420 []
 
const FFCodec ff_vc1_decoder
 

Detailed Description

VC-1 and WMV3 decoder

Definition in file vc1dec.c.

Macro Definition Documentation

◆ transpose

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

Function Documentation

◆ vc1_decode_init_alloc_tables()

static av_cold int vc1_decode_init_alloc_tables ( VC1Context v)
static

Definition at line 333 of file vc1dec.c.

Referenced by ff_vc1_decode_init().

◆ vc1_get_format()

static enum AVPixelFormat vc1_get_format ( AVCodecContext avctx)
static

Definition at line 408 of file vc1dec.c.

Referenced by ff_vc1_decode_init().

◆ ff_vc1_decode_init()

av_cold int ff_vc1_decode_init ( AVCodecContext avctx)

Definition at line 422 of file vc1dec.c.

Referenced by vc1_decode_frame(), and wmv9_init().

◆ ff_vc1_init_transposed_scantables()

av_cold void ff_vc1_init_transposed_scantables ( VC1Context v)

Definition at line 457 of file vc1dec.c.

Referenced by vc1_decode_init(), and wmv9_init().

◆ vc1_init_static()

static av_cold void vc1_init_static ( void  )
static

Definition at line 482 of file vc1dec.c.

Referenced by ff_vc1_init_common().

◆ ff_vc1_init_common()

av_cold void ff_vc1_init_common ( VC1Context v)

Init VC-1 specific tables and VC1Context members.

Parameters
vThe VC1Context to initialize
Returns
Status

Definition at line 597 of file vc1dec.c.

Referenced by vc1_decode_init(), and wmv9_init().

◆ vc1_decode_init()

static av_cold int vc1_decode_init ( AVCodecContext avctx)
static

Initialize a VC1/WMV3 decoder.

Todo:

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

TODO: Decipher remaining bits in extra_data

Definition at line 625 of file vc1dec.c.

◆ ff_vc1_decode_end()

av_cold int ff_vc1_decode_end ( AVCodecContext avctx)

Close a VC1/WMV3 decoder.

Warning
Initial try at using MpegEncContext stuff

Definition at line 789 of file vc1dec.c.

Referenced by ff_vc1_decode_init(), mss2_decode_end(), and vc1_decode_frame().

◆ vc1_decode_frame()

static int vc1_decode_frame ( AVCodecContext avctx,
AVFrame pict,
int got_frame,
AVPacket avpkt 
)
static

Decode a VC1/WMV3 frame.

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

Definition at line 822 of file vc1dec.c.

Variable Documentation

◆ vlc_offs

const uint16_t vlc_offs[]
static
Initial value:
= {
0, 520, 552, 616, 1128, 1160, 1224, 1740, 1772, 1836, 1900, 2436,
2986, 3050, 3610, 4154, 4218, 4746, 5326, 5390, 5902, 6554, 7658, 8342,
9304, 9988, 10630, 11234, 12174, 13006, 13560, 14232, 14786, 15432, 16350, 17522,
20372, 21818, 22330, 22394, 23166, 23678, 23742, 24820, 25332, 25396, 26460, 26980,
27048, 27592, 27600, 27608, 27616, 27624, 28224, 28258, 28290, 28802, 28834, 28866,
29378, 29412, 29444, 29960, 29994, 30026, 30538, 30572, 30604, 31120, 31154, 31186,
31714, 31746, 31778, 32306, 32340, 32372
}

Definition at line 472 of file vc1dec.c.

Referenced by vc1_init_static().

◆ vc1_hwaccel_pixfmt_list_420

enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[]
static
Initial value:

Definition at line 1373 of file vc1dec.c.

◆ ff_vc1_decoder

const FFCodec ff_vc1_decoder

Definition at line 1394 of file vc1dec.c.

AV_PIX_FMT_YUV420P
@ AV_PIX_FMT_YUV420P
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
Definition: pixfmt.h:66
AV_PIX_FMT_NONE
@ AV_PIX_FMT_NONE
Definition: pixfmt.h:65