38 #define ASV2_LEVEL_VLC_BITS 10
103 for (i = 0; i < 11; i++) {
109 if (ccp < 0 || i >= 10) {
146 for (i = 1; i < count + 1; i++) {
171 for (i = 0; i < 6; i++) {
176 for (i = 0; i < 6; i++) {
189 uint8_t *dest_y = frame->
data[0] + (mb_y * 16 * linesize) + mb_x * 16;
209 int buf_size = avpkt->
size;
225 (
const uint32_t *) buf, buf_size / 4);
228 for (i = 0; i < buf_size; i++)
234 for (mb_y = 0; mb_y < a->
mb_height2; mb_y++) {
235 for (mb_x = 0; mb_x < a->
mb_width2; mb_x++) {
245 for (mb_y = 0; mb_y < a->
mb_height2; mb_y++) {
255 for (mb_x = 0; mb_x < a->
mb_width; mb_x++) {
295 for (i = 0; i < 64; i++) {
315 #if CONFIG_ASV1_DECODER
329 #if CONFIG_ASV2_DECODER
void(* bswap_buf)(uint32_t *dst, const uint32_t *src, int w)
static int decode_frame(AVCodecContext *avctx, void *data, int *got_frame, AVPacket *avpkt)
#define AVERROR_INVALIDDATA
Invalid data found when processing input.
This structure describes decoded (raw) audio or video data.
const uint8_t ff_asv_ac_ccp_tab[16][2]
ptrdiff_t const GLvoid * data
static unsigned int get_bits(GetBitContext *s, int n)
Read 1-25 bits.
#define AV_LOG_WARNING
Something somehow does not look correct.
memory handling functions
static av_cold int init(AVCodecContext *avctx)
void(* clear_blocks)(int16_t *blocks)
enum AVPixelFormat pix_fmt
Pixel format, see AV_PIX_FMT_xxx.
void av_fast_padded_malloc(void *ptr, unsigned int *size, size_t min_size)
Same behaviour av_fast_malloc but the buffer has additional AV_INPUT_BUFFER_PADDING_SIZE at the end w...
static int asv2_decode_block(ASV1Context *a, int16_t block[64])
unsigned int bitstream_buffer_size
static int get_sbits(GetBitContext *s, int n)
Macro definitions for various function/variable attributes.
const uint8_t ff_asv2_level_tab[63][2]
static av_cold int decode_init(AVCodecContext *avctx)
#define INIT_VLC_STATIC(vlc, bits, a, b, c, d, e, f, g, static_size)
uint8_t * bitstream_buffer
static VLC asv2_level_vlc
uint8_t * extradata
some codecs need / can use extradata like Huffman tables.
const uint8_t ff_asv_ccp_tab[17][2]
static int asv2_get_level(GetBitContext *gb)
static int get_bits_count(const GetBitContext *s)
const uint8_t ff_asv_dc_ccp_tab[8][2]
#define AV_CODEC_FLAG_GRAY
Only decode/encode grayscale.
#define AV_LOG_ERROR
Something went wrong and cannot losslessly be recovered.
av_cold void ff_asv_common_init(AVCodecContext *avctx)
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
const uint8_t ff_reverse[256]
int flags
AV_CODEC_FLAG_*.
const char * name
Name of the codec implementation.
#define ASV2_LEVEL_VLC_BITS
uint16_t intra_matrix[64]
ASUS V1/V2 encoder/decoder common data.
Libavcodec external API header.
static int asv2_get_bits(GetBitContext *gb, int n)
enum AVPictureType pict_type
Picture type of the frame.
static int decode_mb(ASV1Context *a, int16_t block[6][64])
static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE(*table)[2], int bits, int max_depth)
Parse a vlc code.
uint8_t idct_permutation[64]
IDCT input permutation.
void(* idct_put)(uint8_t *dest, int line_size, int16_t *block)
block -> idct -> clip to unsigned 8 bit -> dest.
av_cold void ff_blockdsp_init(BlockDSPContext *c, AVCodecContext *avctx)
int linesize[AV_NUM_DATA_POINTERS]
For video, size in bytes of each picture line.
main external API structure.
int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
Get a buffer for a frame.
static int init_get_bits(GetBitContext *s, const uint8_t *buffer, int bit_size)
Initialize GetBitContext.
const uint16_t ff_mpeg1_default_intra_matrix[256]
static void idct_put(ASV1Context *a, AVFrame *frame, int mb_x, int mb_y)
uint8_t * data[AV_NUM_DATA_POINTERS]
pointer to the picture/channel planes.
static int decode(AVCodecContext *avctx, void *data, int *got_sub, AVPacket *avpkt)
planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
common internal api header.
av_cold void ff_init_scantable(uint8_t *permutation, ScanTable *st, const uint8_t *src_scantable)
av_cold void ff_idctdsp_init(IDCTDSPContext *c, AVCodecContext *avctx)
VLC_TYPE(* table)[2]
code, bits
static av_cold void init_vlcs(ASV1Context *a)
int key_frame
1 -> keyframe, 0-> not
static int asv1_get_level(GetBitContext *gb)
static int asv1_decode_block(ASV1Context *a, int16_t block[64])
const uint8_t ff_asv_scantab[64]
static av_cold int decode_end(AVCodecContext *avctx)
const uint8_t ff_asv_level_tab[7][2]
This structure stores compressed data.
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.