"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "libavcodec/ppc/fft_init.c" between
libav-11.7.tar.gz and libav-11.8.tar.gz

About: libav provides cross-platform tools ("avconv") and libraries to convert, manipulate and stream a wide range of multimedia (audio and video) formats and protocols.

fft_init.c  (libav-11.7):fft_init.c  (libav-11.8)
skipping to change at line 42 skipping to change at line 42
* The input data must be permuted before with s->revtab table. * The input data must be permuted before with s->revtab table.
* No 1.0 / sqrt(n) normalization is done. * No 1.0 / sqrt(n) normalization is done.
* AltiVec-enabled: * AltiVec-enabled:
* This code assumes that the 'z' pointer is 16 bytes-aligned. * This code assumes that the 'z' pointer is 16 bytes-aligned.
* It also assumes all FFTComplex are 8 bytes-aligned pairs of floats. * It also assumes all FFTComplex are 8 bytes-aligned pairs of floats.
*/ */
void ff_fft_calc_altivec(FFTContext *s, FFTComplex *z); void ff_fft_calc_altivec(FFTContext *s, FFTComplex *z);
void ff_fft_calc_interleave_altivec(FFTContext *s, FFTComplex *z); void ff_fft_calc_interleave_altivec(FFTContext *s, FFTComplex *z);
#if HAVE_GNU_AS && HAVE_ALTIVEC #if HAVE_GNU_AS && HAVE_ALTIVEC && HAVE_BIGENDIAN
static void imdct_half_altivec(FFTContext *s, FFTSample *output, const FFTSample *input) static void imdct_half_altivec(FFTContext *s, FFTSample *output, const FFTSample *input)
{ {
int j, k; int j, k;
int n = 1 << s->mdct_bits; int n = 1 << s->mdct_bits;
int n4 = n >> 2; int n4 = n >> 2;
int n8 = n >> 3; int n8 = n >> 3;
int n32 = n >> 5; int n32 = n >> 5;
const uint16_t *revtabj = s->revtab; const uint16_t *revtabj = s->revtab;
const uint16_t *revtabk = s->revtab+n4; const uint16_t *revtabk = s->revtab+n4;
const vec_f *tcos = (const vec_f*)(s->tcos+n8); const vec_f *tcos = (const vec_f*)(s->tcos+n8);
skipping to change at line 142 skipping to change at line 142
imdct_half_altivec(s, output + n4, input); imdct_half_altivec(s, output + n4, input);
for (k = 0; k < n16; k++) { for (k = 0; k < n16; k++) {
vec_u32 a = p0[k] ^ sign; vec_u32 a = p0[k] ^ sign;
vec_u32 b = p1[-k-1]; vec_u32 b = p1[-k-1];
p0[-k-1] = vec_perm(a, a, vcprm(3,2,1,0)); p0[-k-1] = vec_perm(a, a, vcprm(3,2,1,0));
p1[k] = vec_perm(b, b, vcprm(3,2,1,0)); p1[k] = vec_perm(b, b, vcprm(3,2,1,0));
} }
} }
#endif /* HAVE_GNU_AS && HAVE_ALTIVEC */ #endif /* HAVE_GNU_AS && HAVE_ALTIVEC && HAVE_BIGENDIAN */
av_cold void ff_fft_init_ppc(FFTContext *s) av_cold void ff_fft_init_ppc(FFTContext *s)
{ {
#if HAVE_GNU_AS && HAVE_ALTIVEC #if HAVE_GNU_AS && HAVE_ALTIVEC && HAVE_BIGENDIAN
if (!PPC_ALTIVEC(av_get_cpu_flags())) if (!PPC_ALTIVEC(av_get_cpu_flags()))
return; return;
s->fft_calc = ff_fft_calc_interleave_altivec; s->fft_calc = ff_fft_calc_interleave_altivec;
if (s->mdct_bits >= 5) { if (s->mdct_bits >= 5) {
s->imdct_calc = imdct_calc_altivec; s->imdct_calc = imdct_calc_altivec;
s->imdct_half = imdct_half_altivec; s->imdct_half = imdct_half_altivec;
} }
#endif /* HAVE_GNU_AS && HAVE_ALTIVEC */ #endif /* HAVE_GNU_AS && HAVE_ALTIVEC && HAVE_BIGENDIAN */
} }
 End of changes. 4 change blocks. 
4 lines changed or deleted 4 lines changed or added

Home  |  About  |  All  |  Newest  |  Fossies Dox  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTPS