2012/12/6 Justin Ruggles <[email protected]>:
> +static int decode_subframe(TAKDecContext *s, int32_t *decoded,
> + int subframe_size, int prev_subframe_size)
> +{
[...]
> + emms_c();
[...]
> +static int decorrelate(TAKDecContext *s, int c1, int c2, int length)
[...]
> + emms_c();
This is minor, but couldn't those emms be moved instead to:
> + for (i = 0; i < chan; i++) {
> + if (s->mcdparams[i].present && s->mcdparams[i].index == 1)
> + if (ret = decode_channel(s, s->mcdparams[i].chan2))
> + return ret;
> +
> + if (ret = decode_channel(s, s->mcdparams[i].chan1))
> + return ret;
> +
> + if (s->mcdparams[i].present) {
> + s->dmode = mc_dmodes[s->mcdparams[i].index];
> + if (ret = decorrelate(s,
> + s->mcdparams[i].chan2,
> + s->mcdparams[i].chan1,
> + s->nb_samples - 1))
> + return ret;
> + }
Changing those return to "goto dsp_cleanup;" and
> + }
> + }
> + *got_frame_ptr = 1;
> + *(AVFrame *)data = s->frame;
> +
> + return pkt->size;
> +}
having here instead:
ret = pkt->size;
dsp_cleanup:
emms_c();
return ret;
This is more error-prone, but I don't see any FP processing in between.
--
Christophe
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel