summaryrefslogtreecommitdiff
path: root/libavcodec/mss12.h
diff options
context:
space:
mode:
authorMichael Niedermayer <michaelni@gmx.at>2012-09-04 17:04:51 +0200
committerMichael Niedermayer <michaelni@gmx.at>2012-09-04 17:04:51 +0200
commit9dcc4c30f9d8ef70d3c07b4a77fdc507e8766107 (patch)
treeae6bb70dcf614bfbf032b5fe4ac4f712777cd0c3 /libavcodec/mss12.h
parent9de7622927b1b0ec6f8045b17b3116f046f44b87 (diff)
parentb36f87ff90d87687f574d51385f47bb98d14600a (diff)
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.h18
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) \