FFmpeg
Classes | Macros | Typedefs | Variables
vp3.c File Reference

On2 VP3 Video Decoder. More...

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "libavutil/imgutils.h"
#include "avcodec.h"
#include "get_bits.h"
#include "hpeldsp.h"
#include "internal.h"
#include "mathops.h"
#include "thread.h"
#include "videodsp.h"
#include "vp3data.h"
#include "vp3dsp.h"
#include "xiph.h"

Classes

struct  Vp3Fragment
 
struct  Vp3DecodeContext
 

Macros

#define FRAGMENT_PIXELS   8
 
#define SB_NOT_CODED   0
 
#define SB_PARTIALLY_CODED   1
 
#define SB_FULLY_CODED   2
 
#define MAXIMUM_LONG_BIT_RUN   4129
 
#define MODE_INTER_NO_MV   0
 
#define MODE_INTRA   1
 
#define MODE_INTER_PLUS_MV   2
 
#define MODE_INTER_LAST_MV   3
 
#define MODE_INTER_PRIOR_LAST   4
 
#define MODE_USING_GOLDEN   5
 
#define MODE_GOLDEN_MV   6
 
#define MODE_INTER_FOURMV   7
 
#define CODING_MODE_COUNT   8
 
#define MODE_COPY   8
 
#define MIN_DEQUANT_VAL   2
 
#define TOKEN_EOB(eob_run)   ((eob_run) << 2)
 
#define TOKEN_ZERO_RUN(coeff, zero_run)   (((coeff) * 512) + ((zero_run) << 2) + 1)
 
#define TOKEN_COEFF(coeff)   (((coeff) * 4) + 2)
 
#define BLOCK_X   (2 * mb_x + (k & 1))
 
#define BLOCK_Y   (2 * mb_y + (k >> 1))
 
#define SET_CHROMA_MODES
 
#define COMPATIBLE_FRAME(x)   (compatible_frame[s->all_fragments[x].coding_method] == current_frame_type)
 
#define DC_COEFF(u)   s->all_fragments[u].dc
 
#define PUL   8
 
#define PU   4
 
#define PUR   2
 
#define PL   1
 
#define TRANSPOSE(x)   (((x) >> 3) | (((x) & 7) << 3))
 

Typedefs

typedef struct Vp3Fragment Vp3Fragment
 
typedef struct Vp3DecodeContext Vp3DecodeContext
 

Variables

AVCodec ff_vp3_decoder
 

Detailed Description

On2 VP3 Video Decoder.

VP3 Video Decoder by Mike Melanson (mike at multimedia.cx) For more information about the VP3 coding process, visit: http://wiki.multimedia.cx/index.php?title=On2_VP3

Theora decoder by Alex Beregszaszi

Macro Definition Documentation

§ SET_CHROMA_MODES

#define SET_CHROMA_MODES
Value:
if (frag[s->fragment_start[1]].coding_method != MODE_COPY) \
frag[s->fragment_start[1]].coding_method = coding_mode; \
if (frag[s->fragment_start[2]].coding_method != MODE_COPY) \
frag[s->fragment_start[2]].coding_method = coding_mode;

Variable Documentation

§ ff_vp3_decoder

AVCodec ff_vp3_decoder
Initial value:
= {
.name = "vp3",
.long_name = NULL_IF_CONFIG_SMALL("On2 VP3"),
.type = AVMEDIA_TYPE_VIDEO,
.id = AV_CODEC_ID_VP3,
.priv_data_size = sizeof(Vp3DecodeContext),
.init = vp3_decode_init,
.close = vp3_decode_end,
.decode = vp3_decode_frame,
.flush = vp3_decode_flush,
.init_thread_copy = ONLY_IF_THREADS_ENABLED(vp3_init_thread_copy),
.update_thread_context = ONLY_IF_THREADS_ENABLED(vp3_update_thread_context),
}
Definition: vp3.c:132
#define NULL_IF_CONFIG_SMALL(x)
Return NULL if CONFIG_SMALL is true, otherwise the argument without modification. ...
Definition: internal.h:186
#define AV_CODEC_CAP_FRAME_THREADS
Codec supports frame-level multithreading.
Definition: avcodec.h:1015
#define ONLY_IF_THREADS_ENABLED(x)
Define a function with only the non-default version specified.
Definition: internal.h:225
#define AV_CODEC_CAP_DRAW_HORIZ_BAND
Decoder can use draw_horiz_band callback.
Definition: avcodec.h:953
#define AV_CODEC_CAP_DR1
Codec uses get_buffer() for allocating buffers and supports custom allocators.
Definition: avcodec.h:959