Mercurial > libavcodec.hg
view liba52/resample.c @ 3198:6b9f0c4fbdbe libavcodec
First part of a series of speed-enchancing patches.
This one sets up a snow.h and makes snow use the dsputil function pointer
framework to access the three functions that will be implemented in asm
in the other parts of the patchset.
Patch by Robert Edele < yartrebo AH earthlink POIS net>
Original thread:
Subject: [Ffmpeg-devel] [PATCH] Snow mmx+sse2 asm optimizations
Date: Sun, 05 Feb 2006 12:47:14 -0500
author | gpoirier |
---|---|
date | Thu, 16 Mar 2006 19:18:18 +0000 |
parents | ef2149182f1c |
children | 5f28e617c078 |
line wrap: on
line source
// a52_resample_init should find the requested converter (from type flags -> // given number of channels) and set up some function pointers... // a52_resample() should do the conversion. #include "a52.h" #include "mm_accel.h" #include "config.h" #include "../libpostproc/mangle.h" int (* a52_resample) (float * _f, int16_t * s16)=NULL; #include "resample_c.c" #ifdef ARCH_X86 #include "resample_mmx.c" #endif void* a52_resample_init(uint32_t mm_accel,int flags,int chans){ void* tmp; #ifdef ARCH_X86 if(mm_accel&MM_ACCEL_X86_MMX){ tmp=a52_resample_MMX(flags,chans); if(tmp){ if(a52_resample==NULL) av_log(NULL, AV_LOG_INFO, "Using MMX optimized resampler\n"); a52_resample=tmp; return tmp; } } #endif tmp=a52_resample_C(flags,chans); if(tmp){ if(a52_resample==NULL) av_log(NULL, AV_LOG_INFO, "No accelerated resampler found\n"); a52_resample=tmp; return tmp; } av_log(NULL, AV_LOG_ERROR, "Unimplemented resampler for mode 0x%X -> %d channels conversion - Contact MPlayer developers!\n", flags, chans); return NULL; }