FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Macros | Functions | Variables
vc1dec.c File Reference

VC-1 and WMV3 decoder. More...

#include "avcodec.h"
#include "blockdsp.h"
#include "get_bits.h"
#include "internal.h"
#include "mpeg_er.h"
#include "mpegvideo.h"
#include "msmpeg4.h"
#include "msmpeg4data.h"
#include "vc1.h"
#include "vc1data.h"
#include "vdpau_compat.h"
#include "libavutil/avassert.h"

Go to the source code of this file.

Macros

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

Functions

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...
 

Variables

static const AVProfile profiles []
 
static enum AVPixelFormat vc1_hwaccel_pixfmt_list_420 []
 
AVCodec ff_vc1_decoder
 

Detailed Description

VC-1 and WMV3 decoder.

Definition in file vc1dec.c.

Macro Definition Documentation

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

Function Documentation

av_cold int ff_vc1_decode_init_alloc_tables ( VC1Context v)

Definition at line 323 of file vc1dec.c.

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

av_cold void ff_vc1_init_transposed_scantables ( VC1Context v)

Definition at line 399 of file vc1dec.c.

Referenced by vc1_decode_init(), and wmv9_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: Decypher remaining bits in extra_data

Definition at line 418 of file vc1dec.c.

av_cold int ff_vc1_decode_end ( AVCodecContext avctx)

Close a VC1/WMV3 decoder.

Warning
Initial try at using MpegEncContext stuff

Definition at line 583 of file vc1dec.c.

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

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 618 of file vc1dec.c.

Variable Documentation

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_MAIN
Definition: avcodec.h:3008
#define FF_PROFILE_UNKNOWN
Definition: avcodec.h:2962
#define FF_PROFILE_VC1_SIMPLE
Definition: avcodec.h:3007
#define FF_PROFILE_VC1_COMPLEX
Definition: avcodec.h:3009
#define FF_PROFILE_VC1_ADVANCED
Definition: avcodec.h:3010

Definition at line 1106 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:63

Definition at line 1114 of file vc1dec.c.

AVCodec ff_vc1_decoder
Initial value:
= {
.name = "vc1",
.long_name = NULL_IF_CONFIG_SMALL("SMPTE VC-1"),
.priv_data_size = sizeof(VC1Context),
}
The VC1 Context.
Definition: vc1.h:173
static void flush(AVCodecContext *avctx)
static av_cold int init(AVCodecContext *avctx)
Definition: avrndec.c:35
#define AV_CODEC_CAP_DELAY
Encoder or decoder requires flushing with NULL input at the end in order to give the complete and cor...
Definition: avcodec.h:866
static const AVProfile profiles[]
Definition: vc1dec.c:1106
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:175
static av_cold int vc1_decode_init(AVCodecContext *avctx)
Initialize a VC1/WMV3 decoder.
Definition: vc1dec.c:418
void ff_mpeg_flush(AVCodecContext *avctx)
Definition: mpegvideo.c:2766
av_cold int ff_vc1_decode_end(AVCodecContext *avctx)
Close a VC1/WMV3 decoder.
Definition: vc1dec.c:583
static enum AVPixelFormat pix_fmts[]
Definition: libkvazaar.c:245
static int vc1_decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
Decode a VC1/WMV3 frame.
Definition: vc1dec.c:618
static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avpkt)
Definition: ccaption_dec.c:523
static enum AVPixelFormat vc1_hwaccel_pixfmt_list_420[]
Definition: vc1dec.c:1114
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:841

Definition at line 1131 of file vc1dec.c.