| Index: third_party/libwebp/dec/vp8i.h
|
| diff --git a/third_party/libwebp/dec/vp8i.h b/third_party/libwebp/dec/vp8i.h
|
| index 0e6c8f57813abbe337b9d9277c54c0c14f8c0ed0..0104f255df10dc3eefaddc07e3b8b113adb2d1fa 100644
|
| --- a/third_party/libwebp/dec/vp8i.h
|
| +++ b/third_party/libwebp/dec/vp8i.h
|
| @@ -15,6 +15,7 @@
|
| #define WEBP_DEC_VP8I_H_
|
|
|
| #include <string.h> // for memcpy()
|
| +#include "./common.h"
|
| #include "./vp8li.h"
|
| #include "../utils/bit_reader.h"
|
| #include "../utils/random.h"
|
| @@ -30,46 +31,10 @@ extern "C" {
|
|
|
| // version numbers
|
| #define DEC_MAJ_VERSION 0
|
| -#define DEC_MIN_VERSION 4
|
| -#define DEC_REV_VERSION 4
|
| -
|
| -// intra prediction modes
|
| -enum { B_DC_PRED = 0, // 4x4 modes
|
| - B_TM_PRED,
|
| - B_VE_PRED,
|
| - B_HE_PRED,
|
| - B_RD_PRED,
|
| - B_VR_PRED,
|
| - B_LD_PRED,
|
| - B_VL_PRED,
|
| - B_HD_PRED,
|
| - B_HU_PRED,
|
| - NUM_BMODES = B_HU_PRED + 1 - B_DC_PRED, // = 10
|
| -
|
| - // Luma16 or UV modes
|
| - DC_PRED = B_DC_PRED, V_PRED = B_VE_PRED,
|
| - H_PRED = B_HE_PRED, TM_PRED = B_TM_PRED,
|
| - B_PRED = NUM_BMODES, // refined I4x4 mode
|
| -
|
| - // special modes
|
| - B_DC_PRED_NOTOP = 4,
|
| - B_DC_PRED_NOLEFT = 5,
|
| - B_DC_PRED_NOTOPLEFT = 6,
|
| - NUM_B_DC_MODES = 7 };
|
| -
|
| -enum { MB_FEATURE_TREE_PROBS = 3,
|
| - NUM_MB_SEGMENTS = 4,
|
| - NUM_REF_LF_DELTAS = 4,
|
| - NUM_MODE_LF_DELTAS = 4, // I4x4, ZERO, *, SPLIT
|
| - MAX_NUM_PARTITIONS = 8,
|
| - // Probabilities
|
| - NUM_TYPES = 4,
|
| - NUM_BANDS = 8,
|
| - NUM_CTX = 3,
|
| - NUM_PROBAS = 11,
|
| - NUM_MV_PROBAS = 19 };
|
| -
|
| -// YUV-cache parameters.
|
| +#define DEC_MIN_VERSION 5
|
| +#define DEC_REV_VERSION 0
|
| +
|
| +// YUV-cache parameters. Cache is 32-bytes wide (= one cacheline).
|
| // Constraints are: We need to store one 16x16 block of luma samples (y),
|
| // and two 8x8 chroma blocks (u/v). These are better be 16-bytes aligned,
|
| // in order to be SIMD-friendly. We also need to store the top, left and
|
| @@ -91,8 +56,6 @@ enum { MB_FEATURE_TREE_PROBS = 3,
|
| // 'y' = y-samples 'u' = u-samples 'v' = u-samples
|
| // '|' = left sample, '-' = top sample, '+' = top-left sample
|
| // 't' = extra top-right sample for 4x4 modes
|
| -// With this layout, BPS (=Bytes Per Scan-line) is one cacheline size.
|
| -#define BPS 32 // this is the common stride used by yuv[]
|
| #define YUV_SIZE (BPS * 17 + BPS * 9)
|
| #define Y_SIZE (BPS * 17)
|
| #define Y_OFF (BPS * 1 + 8)
|
| @@ -130,7 +93,6 @@ typedef struct {
|
| int8_t filter_strength_[NUM_MB_SEGMENTS]; // filter strength for segments
|
| } VP8SegmentHeader;
|
|
|
| -
|
| // probas associated to one of the contexts
|
| typedef uint8_t VP8ProbaArray[NUM_PROBAS];
|
|
|
| @@ -143,6 +105,7 @@ typedef struct {
|
| uint8_t segments_[MB_FEATURE_TREE_PROBS];
|
| // Type: 0:Intra16-AC 1:Intra16-DC 2:Chroma 3:Intra4
|
| VP8BandProbas bands_[NUM_TYPES][NUM_BANDS];
|
| + const VP8BandProbas* bands_ptr_[NUM_TYPES][16 + 1];
|
| } VP8Proba;
|
|
|
| // Filter parameters
|
| @@ -317,7 +280,7 @@ int VP8ParseIntraModeRow(VP8BitReader* const br, VP8Decoder* const dec);
|
| void VP8ParseQuant(VP8Decoder* const dec);
|
|
|
| // in frame.c
|
| -int VP8InitFrame(VP8Decoder* const dec, VP8Io* io);
|
| +int VP8InitFrame(VP8Decoder* const dec, VP8Io* const io);
|
| // Call io->setup() and finish setting up scan parameters.
|
| // After this call returns, one must always call VP8ExitCritical() with the
|
| // same parameters. Both functions should be used in pair. Returns VP8_STATUS_OK
|
|
|