typedefstruct VP8Macroblock {
uint8_t skip; // TODO: make it possible to check for at least (i4x4 or split_mv) // in one op. are others needed?
uint8_t mode;
uint8_t ref_frame;
uint8_t partitioning;
uint8_t chroma_pred_mode;
uint8_t segment;
uint8_t intra4x4_pred_mode_mb[16];
DECLARE_ALIGNED(4, uint8_t, intra4x4_pred_mode_top)[4];
VP8mv mv;
VP8mv bmv[16];
} VP8Macroblock;
typedefstruct VP8intmv { int x; int y;
} VP8intmv;
// Raw quantisation values, which may be needed by hwaccel decode. struct { int yac_qi; int ydc_delta; int y2dc_delta; int y2ac_delta; int uvdc_delta; int uvac_delta;
} quant;
struct {
uint8_t enabled; ///< whether each mb can have a different strength based on mode/ref
uint8_t update;
VPXRangeCoder c; ///< header context, includes mb modes and motion vectors
/* This contains the entropy coder state at the end of the header *block,intheformspecifiedbythestandard.Foruseby *hwaccels,sothatahardwaredecoderhastheinformationto *startdecodingatthemacroblocklayer.
*/ struct { const uint8_t *input;
uint32_t range;
uint32_t value; int bit_count;
} coder_state_at_header_end;
VP8Macroblock *macroblocks_base; int invisible; int update_last; ///< update VP8_FRAME_PREVIOUS with the current one int update_golden; ///< VP8_FRAME_NONE if not updated, or which frame to copy if so int update_altref;
/** *Ifthisflagisnotset,alltheprobabilityupdates *arediscardedafterthisframeisdecoded.
*/ int update_probabilities;
/** *Allcoefficientsarecontainedinseparatearithcodingcontexts. *Therecanbe1,2,4,or8oftheseaftertheheadercontext.
*/ int num_coeff_partitions;
VPXRangeCoder coeff_partition[8]; int coeff_partition_size[8];
VideoDSPContext vdsp;
VP8DSPContext vp8dsp;
H264PredContext hpc;
vp8_mc_func put_pixels_tab[3][3][3];
VP8Frame frames[5];
uint8_t colorspace; ///< 0 is the only value allowed (meaning bt601)
uint8_t fullrange; ///< whether we can skip clamping in dsp functions
int num_jobs; /** *Thisdescribesthemacroblockmemorylayout. *0->Onlywidth+height*2+1macroblocksallocated(frame/singlethread). *1->Macroblocksforentireframeallocated(slicedthread).
*/ int mb_layout;
int (*decode_mb_row_no_filter)(AVCodecContext *avctx, void *tdata, int jobnr, int threadnr); void (*filter_mb_row)(AVCodecContext *avctx, void *tdata, int jobnr, int threadnr);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.