|
|
|
@ -547,8 +547,7 @@ static inline void intra_dc_prediction(SubBand *b) |
|
|
|
|
* Dirac Specification -> |
|
|
|
|
* 13.4.2 Non-skipped subbands. subband_coeffs() |
|
|
|
|
*/ |
|
|
|
|
static av_always_inline |
|
|
|
|
void decode_subband_internal(DiracContext *s, SubBand *b, int is_arith) |
|
|
|
|
static av_always_inline void decode_subband_internal(DiracContext *s, SubBand *b, int is_arith) |
|
|
|
|
{ |
|
|
|
|
int cb_x, cb_y, left, right, top, bottom; |
|
|
|
|
DiracArith c; |
|
|
|
@ -742,8 +741,8 @@ static void decode_lowdelay(DiracContext *s) |
|
|
|
|
buf = s->gb.buffer + get_bits_count(&s->gb)/8; |
|
|
|
|
bufsize = get_bits_left(&s->gb); |
|
|
|
|
|
|
|
|
|
for (slice_y = 0; slice_y < s->lowdelay.num_y; slice_y++) |
|
|
|
|
for (slice_x = 0; slice_x < s->lowdelay.num_x; slice_x++) { |
|
|
|
|
for (slice_y = 0; bufsize > 0 && slice_y < s->lowdelay.num_y; slice_y++) |
|
|
|
|
for (slice_x = 0; bufsize > 0 && slice_x < s->lowdelay.num_x; slice_x++) { |
|
|
|
|
bytes = (slice_num+1) * s->lowdelay.bytes.num / s->lowdelay.bytes.den |
|
|
|
|
- slice_num * s->lowdelay.bytes.num / s->lowdelay.bytes.den; |
|
|
|
|
|
|
|
|
@ -755,10 +754,7 @@ static void decode_lowdelay(DiracContext *s) |
|
|
|
|
|
|
|
|
|
buf += bytes; |
|
|
|
|
bufsize -= bytes*8; |
|
|
|
|
if (bufsize <= 0) |
|
|
|
|
goto end; |
|
|
|
|
} |
|
|
|
|
end: |
|
|
|
|
|
|
|
|
|
avctx->execute(avctx, decode_lowdelay_slice, slices, NULL, slice_num, |
|
|
|
|
sizeof(struct lowdelay_slice)); /* [DIRAC_STD] 13.5.2 Slices */ |
|
|
|
@ -1581,7 +1577,8 @@ static int dirac_decode_frame_internal(DiracContext *s) |
|
|
|
|
|
|
|
|
|
dsty = -p->yoffset; |
|
|
|
|
for (y = 0; y < s->blheight; y++) { |
|
|
|
|
int h = 0, start = FFMAX(dsty, 0); |
|
|
|
|
int h = 0, |
|
|
|
|
start = FFMAX(dsty, 0); |
|
|
|
|
uint16_t *mctmp = s->mctmp + y*rowheight; |
|
|
|
|
DiracBlock *blocks = s->blmotion + y*s->blwidth; |
|
|
|
|
|
|
|
|
|