Lines Matching refs:ctx
143 static int smacker_decode_bigtree(GetBitContext *gb, DBCtx *ctx, int length)
151 if (ctx->current >= ctx->length) {
159 i1 = ctx->v1->table ? get_vlc2(gb, ctx->v1->table, SMKTREE_BITS, 3)
160 : ctx->vals[0];
161 i2 = ctx->v2->table ? get_vlc2(gb, ctx->v2->table, SMKTREE_BITS, 3)
162 : ctx->vals[1];
164 if(val == ctx->escapes[0]) {
165 ctx->last[0] = ctx->current;
167 } else if(val == ctx->escapes[1]) {
168 ctx->last[1] = ctx->current;
170 } else if(val == ctx->escapes[2]) {
171 ctx->last[2] = ctx->current;
175 ctx->values[ctx->current++] = val;
180 t = ctx->current++;
181 r = smacker_decode_bigtree(gb, ctx, length + 1);
184 ctx->values[t] = SMK_NODE | r;
186 r_new = smacker_decode_bigtree(gb, ctx, length + 1);
203 DBCtx ctx;
215 ctx.vals[i] = 0;
234 ctx.vals[i] = h.entries[0].value;
243 ctx.escapes[0] = escapes[0];
244 ctx.escapes[1] = escapes[1];
245 ctx.escapes[2] = escapes[2];
246 ctx.v1 = &vlc[0];
247 ctx.v2 = &vlc[1];
248 ctx.last = last;
249 ctx.length = (size + 3) >> 2;
250 ctx.current = 0;
251 ctx.values = av_malloc_array(ctx.length + 3, sizeof(ctx.values[0]));
252 if (!ctx.values) {
256 *recodes = ctx.values;
258 err = smacker_decode_bigtree(gb, &ctx, 0);
262 if (ctx.last[0] == -1) ctx.last[0] = ctx.current++;
263 if (ctx.last[1] == -1) ctx.last[1] = ctx.current++;
264 if (ctx.last[2] == -1) ctx.last[2] = ctx.current++;