Lines Matching refs:smk

199 static int smacker_decode_header_tree(SmackVContext *smk, GetBitContext *gb, int **recodes, int *last, int size)
207 av_log(smk->avctx, AV_LOG_ERROR, "size too large\n");
216 av_log(smk->avctx, AV_LOG_ERROR, "Skipping %s bytes tree\n",
228 0, INIT_VLC_OUTPUT_LE, smk->avctx);
230 av_log(smk->avctx, AV_LOG_ERROR, "Cannot build VLC table\n");
275 static int decode_header_trees(SmackVContext *smk) {
280 mmap_size = AV_RL32(smk->avctx->extradata);
281 mclr_size = AV_RL32(smk->avctx->extradata + 4);
282 full_size = AV_RL32(smk->avctx->extradata + 8);
283 type_size = AV_RL32(smk->avctx->extradata + 12);
285 ret = init_get_bits8(&gb, smk->avctx->extradata + 16, smk->avctx->extradata_size - 16);
291 av_log(smk->avctx, AV_LOG_INFO, "Skipping MMAP tree\n");
292 smk->mmap_tbl = av_malloc(sizeof(int) * 2);
293 if (!smk->mmap_tbl)
295 smk->mmap_tbl[0] = 0;
296 smk->mmap_last[0] = smk->mmap_last[1] = smk->mmap_last[2] = 1;
298 ret = smacker_decode_header_tree(smk, &gb, &smk->mmap_tbl, smk->mmap_last, mmap_size);
304 av_log(smk->avctx, AV_LOG_INFO, "Skipping MCLR tree\n");
305 smk->mclr_tbl = av_malloc(sizeof(int) * 2);
306 if (!smk->mclr_tbl)
308 smk->mclr_tbl[0] = 0;
309 smk->mclr_last[0] = smk->mclr_last[1] = smk->mclr_last[2] = 1;
311 ret = smacker_decode_header_tree(smk, &gb, &smk->mclr_tbl, smk->mclr_last, mclr_size);
317 av_log(smk->avctx, AV_LOG_INFO, "Skipping FULL tree\n");
318 smk->full_tbl = av_malloc(sizeof(int) * 2);
319 if (!smk->full_tbl)
321 smk->full_tbl[0] = 0;
322 smk->full_last[0] = smk->full_last[1] = smk->full_last[2] = 1;
324 ret = smacker_decode_header_tree(smk, &gb, &smk->full_tbl, smk->full_last, full_size);
330 av_log(smk->avctx, AV_LOG_INFO, "Skipping TYPE tree\n");
331 smk->type_tbl = av_malloc(sizeof(int) * 2);
332 if (!smk->type_tbl)
334 smk->type_tbl[0] = 0;
335 smk->type_last[0] = smk->type_last[1] = smk->type_last[2] = 1;
337 ret = smacker_decode_header_tree(smk, &gb, &smk->type_tbl, smk->type_last, type_size);
377 SmackVContext * const smk = avctx->priv_data;
390 if ((ret = ff_reget_buffer(avctx, smk->pic, 0)) < 0)
394 pal = (uint32_t*)smk->pic->data[1];
397 smk->pic->palette_has_changed = flags & 1;
398 smk->pic->key_frame = !!(flags & 2);
399 if (smk->pic->key_frame)
400 smk->pic->pict_type = AV_PICTURE_TYPE_I;
402 smk->pic->pict_type = AV_PICTURE_TYPE_P;
407 last_reset(smk->mmap_tbl, smk->mmap_last);
408 last_reset(smk->mclr_tbl, smk->mclr_last);
409 last_reset(smk->full_tbl, smk->full_last);
410 last_reset(smk->type_tbl, smk->type_last);
418 stride = smk->pic->linesize[0];
423 type = smk_get_code(&gb, smk->type_tbl, smk->type_last);
432 clr = smk_get_code(&gb, smk->mclr_tbl, smk->mclr_last);
433 map = smk_get_code(&gb, smk->mmap_tbl, smk->mmap_last);
434 out = smk->pic->data[0] + (blk / bw) * (stride * 4) + (blk % bw) * 4;
457 out = smk->pic->data[0] + (blk / bw) * (stride * 4) + (blk % bw) * 4;
461 pix = smk_get_code(&gb, smk->full_tbl, smk->full_last);
463 pix = smk_get_code(&gb, smk->full_tbl, smk->full_last);
469 pix = smk_get_code(&gb, smk->full_tbl, smk->full_last);
476 pix = smk_get_code(&gb, smk->full_tbl, smk->full_last);
486 pix2 = smk_get_code(&gb, smk->full_tbl, smk->full_last);
487 pix1 = smk_get_code(&gb, smk->full_tbl, smk->full_last);
508 out = smk->pic->data[0] + (blk / bw) * (stride * 4) + (blk % bw) * 4;
521 if ((ret = av_frame_ref(rframe, smk->pic)) < 0)
533 SmackVContext * const smk = avctx->priv_data;
535 av_freep(&smk->mmap_tbl);
536 av_freep(&smk->mclr_tbl);
537 av_freep(&smk->full_tbl);
538 av_freep(&smk->type_tbl);
540 av_frame_free(&smk->pic);