Mercurial > libavcodec.hg
comparison dca.c @ 11606:93db59ec6eb7 libavcodec
DCA: use some type-punning in qmf_32_subbands()
author | mru |
---|---|
date | Mon, 12 Apr 2010 11:14:48 +0000 |
parents | 18f17f44de37 |
children | 554450259db8 |
comparison
equal
deleted
inserted
replaced
11605:414a7cdaa54d | 11606:93db59ec6eb7 |
---|---|
28 | 28 |
29 #include <math.h> | 29 #include <math.h> |
30 #include <stddef.h> | 30 #include <stddef.h> |
31 #include <stdio.h> | 31 #include <stdio.h> |
32 | 32 |
33 #include "libavutil/intreadwrite.h" | |
33 #include "avcodec.h" | 34 #include "avcodec.h" |
34 #include "dsputil.h" | 35 #include "dsputil.h" |
35 #include "fft.h" | 36 #include "fft.h" |
36 #include "get_bits.h" | 37 #include "get_bits.h" |
37 #include "put_bits.h" | 38 #include "put_bits.h" |
768 | 769 |
769 /* Reconstructed channel sample index */ | 770 /* Reconstructed channel sample index */ |
770 for (subindex = 0; subindex < 8; subindex++) { | 771 for (subindex = 0; subindex < 8; subindex++) { |
771 /* Load in one sample from each subband and clear inactive subbands */ | 772 /* Load in one sample from each subband and clear inactive subbands */ |
772 for (i = 0; i < s->subband_activity[chans]; i++){ | 773 for (i = 0; i < s->subband_activity[chans]; i++){ |
773 if((i-1)&2) s->raXin[i] = -samples_in[i][subindex]; | 774 uint32_t v = AV_RN32A(&samples_in[i][subindex]) ^ ((i-1)&2)<<30; |
774 else s->raXin[i] = samples_in[i][subindex]; | 775 AV_WN32A(&s->raXin[i], v); |
775 } | 776 } |
776 for (; i < 32; i++) | 777 for (; i < 32; i++) |
777 s->raXin[i] = 0.0; | 778 s->raXin[i] = 0.0; |
778 | 779 |
779 s->synth.synth_filter_float(&s->imdct, | 780 s->synth.synth_filter_float(&s->imdct, |