VC-1 and WMV3 decoder common code. More...
#include "internal.h"#include "dsputil.h"#include "avcodec.h"#include "mpegvideo.h"#include "vc1.h"#include "vc1data.h"#include "msmpeg4data.h"#include "unary.h"#include "simple_idct.h"#include <assert.h>Go to the source code of this file.
Defines | |
| #define | INIT_LUT(lumscale, lumshift, luty, lutuv) |
Enumerations | |
VC-1 Bitplane decoding | |
| |
| 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 | decode_rowskip (uint8_t *plane, int width, int height, int stride, GetBitContext *gb) |
| Decode rows by checking if they are skipped. | |
| static void | decode_colskip (uint8_t *plane, int width, int height, int stride, GetBitContext *gb) |
| Decode columns by checking if they are skipped. | |
| static int | bitplane_decoding (uint8_t *data, int *raw_flag, VC1Context *v) |
| Decode a bitplane's bits. | |
| static int | vop_dquant_decoding (VC1Context *v) |
| VOP Dquant decoding. | |
| static int | decode_sequence_header_adv (VC1Context *v, GetBitContext *gb) |
| int | vc1_decode_sequence_header (AVCodecContext *avctx, VC1Context *v, GetBitContext *gb) |
| Decode Simple/Main Profiles sequence header. | |
| int | vc1_decode_entry_point (AVCodecContext *avctx, VC1Context *v, GetBitContext *gb) |
| int | vc1_parse_frame_header (VC1Context *v, GetBitContext *gb) |
| int | vc1_parse_frame_header_adv (VC1Context *v, GetBitContext *gb) |
VC-1 and WMV3 decoder common code.
Definition in file vc1.c.
| #define INIT_LUT | ( | lumscale, | |
| lumshift, | |||
| luty, | |||
| lutuv | |||
| ) |
if (!lumscale) { \ scale = -64; \ shift = (255 - lumshift * 2) << 6; \ if (lumshift > 31) \ shift += 128 << 6; \ } else { \ scale = lumscale + 32; \ if (lumshift > 31) \ shift = (lumshift - 64) << 6; \ else \ shift = lumshift << 6; \ } \ for (i = 0; i < 256; i++) { \ luty[i] = av_clip_uint8((scale * i + shift + 32) >> 6); \ lutuv[i] = av_clip_uint8((scale * (i - 128) + 128*64 + 32) >> 6); \ }
Definition at line 800 of file vc1.c.
Referenced by vc1_parse_frame_header_adv().
| enum Imode |
| static int bitplane_decoding | ( | uint8_t * | data, |
| int * | raw_flag, | ||
| VC1Context * | v | ||
| ) | [static] |
Decode a bitplane's bits.
| data | bitplane where to store the decode bits | |
| [out] | raw_flag | pointer to the flag indicating that this bitplane is not coded explicitly |
| v | VC-1 context for bit reading and logging |
Definition at line 116 of file vc1.c.
Referenced by vc1_parse_frame_header(), and vc1_parse_frame_header_adv().
| static void decode_colskip | ( | uint8_t * | plane, |
| int | width, | ||
| int | height, | ||
| int | stride, | ||
| GetBitContext * | gb | ||
| ) | [static] |
Decode columns by checking if they are skipped.
| plane | Buffer to store decoded bits | |
| [in] | width | Width of this buffer |
| [in] | height | Height of this buffer |
| [in] | stride | of this buffer |
Definition at line 93 of file vc1.c.
Referenced by bitplane_decoding().
| static void decode_rowskip | ( | uint8_t * | plane, |
| int | width, | ||
| int | height, | ||
| int | stride, | ||
| GetBitContext * | gb | ||
| ) | [static] |
Decode rows by checking if they are skipped.
| plane | Buffer to store decoded bits | |
| [in] | width | Width of this buffer |
| [in] | height | Height of this buffer |
| [in] | stride | of this buffer |
Definition at line 71 of file vc1.c.
Referenced by bitplane_decoding().
| static int decode_sequence_header_adv | ( | VC1Context * | v, |
| GetBitContext * | gb | ||
| ) | [static] |
Definition at line 418 of file vc1.c.
Referenced by vc1_decode_sequence_header().
| int vc1_decode_entry_point | ( | AVCodecContext * | avctx, |
| VC1Context * | v, | ||
| GetBitContext * | gb | ||
| ) |
Definition at line 527 of file vc1.c.
Referenced by vc1_decode_frame(), vc1_decode_init(), and vc1_extract_headers().
| int vc1_decode_sequence_header | ( | AVCodecContext * | avctx, |
| VC1Context * | v, | ||
| GetBitContext * | gb | ||
| ) |
Decode Simple/Main Profiles sequence header.
| avctx | Codec context |
| gb | GetBit context initialized from Codec context extra_data |
Definition at line 294 of file vc1.c.
Referenced by vc1_decode_init(), and vc1_extract_headers().
| int vc1_parse_frame_header | ( | VC1Context * | v, |
| GetBitContext * | gb | ||
| ) |
Definition at line 575 of file vc1.c.
Referenced by vc1_decode_frame(), and vc1_extract_headers().
| int vc1_parse_frame_header_adv | ( | VC1Context * | v, |
| GetBitContext * | gb | ||
| ) |
Definition at line 818 of file vc1.c.
Referenced by vc1_decode_frame(), and vc1_extract_headers().
| static int vop_dquant_decoding | ( | VC1Context * | v | ) | [static] |
VOP Dquant decoding.
| v | VC-1 Context |
Definition at line 245 of file vc1.c.
Referenced by vc1_parse_frame_header(), and vc1_parse_frame_header_adv().