diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2012-09-04 17:04:51 +0200 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2012-09-04 17:04:51 +0200 |
commit | 9dcc4c30f9d8ef70d3c07b4a77fdc507e8766107 (patch) | |
tree | ae6bb70dcf614bfbf032b5fe4ac4f712777cd0c3 /libavcodec/mss12.h | |
parent | 9de7622927b1b0ec6f8045b17b3116f046f44b87 (diff) | |
parent | b36f87ff90d87687f574d51385f47bb98d14600a (diff) | |
download | ffmpeg-9dcc4c30f9d8ef70d3c07b4a77fdc507e8766107.tar.gz |
Merge remote-tracking branch 'qatar/master'
* qatar/master:
configure: add support for bdver1 and bdver2 CPU types.
avio: make avio_close NULL the freed buffer
pixdesc: cosmetics
proresenc: Don't free a buffer not owned by the codec
proresenc: Write the full value in one put_bits call
adpcmenc: Calculate the IMA_QT predictor without overflow
x86: Add convenience macros to check for CPU extensions and flags
x86: h264dsp: drop some unnecessary ifdefs around prototype declarations
mss12: merge decode_pixel() and decode_top_left_pixel()
mss12: reduce SliceContext size from 1067 to 164 KB
mss12: move SliceContexts out of the common context into the codec contexts
Conflicts:
libavformat/aviobuf.c
Merged-by: Michael Niedermayer <michaelni@gmx.at>
Diffstat (limited to 'libavcodec/mss12.h')
-rw-r--r-- | libavcodec/mss12.h | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/libavcodec/mss12.h b/libavcodec/mss12.h index 9068651e06..ba80030ee3 100644 --- a/libavcodec/mss12.h +++ b/libavcodec/mss12.h @@ -38,10 +38,9 @@ #define THRESH_HIGH 50 typedef struct Model { - int cum_prob[MODEL_MAX_SYMS + 1]; - int weights[MODEL_MAX_SYMS + 1]; - int idx2sym[MODEL_MAX_SYMS + 1]; - int sym2idx[MODEL_MAX_SYMS + 1]; + int16_t cum_prob[MODEL_MAX_SYMS + 1]; + int16_t weights[MODEL_MAX_SYMS + 1]; + uint8_t idx2sym[MODEL_MAX_SYMS + 1]; int num_syms; int thr_weight, threshold; } Model; @@ -60,7 +59,7 @@ typedef struct PixContext { int cache_size, num_syms; uint8_t cache[12]; Model cache_model, full_model; - Model sec_models[4][8][4]; + Model sec_models[15][4]; int special_initial_cache; } PixContext; @@ -86,21 +85,18 @@ typedef struct MSS12Context { int rgb_stride; int free_colours; int keyframe; - Model intra_region, inter_region; - Model pivot, edge_mode, split_mode; - PixContext intra_pix_ctx, inter_pix_ctx; int mvX, mvY; int corrupted; int slice_split; int full_model_syms; - SliceContext sc[2]; } MSS12Context; int ff_mss12_decode_rect(SliceContext *ctx, ArithCoder *acoder, int x, int y, int width, int height); void ff_mss12_model_update(Model *m, int val); -void ff_mss12_codec_reset(MSS12Context *ctx); -av_cold int ff_mss12_decode_init(MSS12Context *ctx, int version); +void ff_mss12_slicecontext_reset(SliceContext *sc); +av_cold int ff_mss12_decode_init(MSS12Context *c, int version, + SliceContext* sc1, SliceContext *sc2); av_cold int ff_mss12_decode_end(MSS12Context *ctx); #define ARITH_GET_BIT(VERSION) \ |