MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / ff_jpeg2000_dwt_init

Function ff_jpeg2000_dwt_init

libavcodec/jpeg2000dwt.c:539–581  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

537}
538
539int ff_jpeg2000_dwt_init(DWTContext *s, int border[2][2],
540 int decomp_levels, int type)
541{
542 int i, j, lev = decomp_levels, maxlen,
543 b[2][2];
544
545 s->ndeclevels = decomp_levels;
546 s->type = type;
547
548 for (i = 0; i < 2; i++)
549 for (j = 0; j < 2; j++)
550 b[i][j] = border[i][j];
551
552 maxlen = FFMAX(b[0][1] - b[0][0],
553 b[1][1] - b[1][0]);
554 while (--lev >= 0)
555 for (i = 0; i < 2; i++) {
556 s->linelen[lev][i] = b[i][1] - b[i][0];
557 s->mod[lev][i] = b[i][0] & 1;
558 for (j = 0; j < 2; j++)
559 b[i][j] = (b[i][j] + 1) >> 1;
560 }
561 switch (type) {
562 case FF_DWT97:
563 s->f_linebuf = av_malloc_array((maxlen + 12), sizeof(*s->f_linebuf));
564 if (!s->f_linebuf)
565 return AVERROR(ENOMEM);
566 break;
567 case FF_DWT97_INT:
568 s->i_linebuf = av_malloc_array((maxlen + 12), sizeof(*s->i_linebuf));
569 if (!s->i_linebuf)
570 return AVERROR(ENOMEM);
571 break;
572 case FF_DWT53:
573 s->i_linebuf = av_malloc_array((maxlen + 6), sizeof(*s->i_linebuf));
574 if (!s->i_linebuf)
575 return AVERROR(ENOMEM);
576 break;
577 default:
578 return -1;
579 }
580 return 0;
581}
582
583int ff_dwt_encode(DWTContext *s, void *t)
584{

Callers 3

test_dwtFunction · 0.85
test_dwtfFunction · 0.85

Calls 1

av_malloc_arrayFunction · 0.85

Tested by 2

test_dwtFunction · 0.68
test_dwtfFunction · 0.68