⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 loadec.c

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 C
字号:
/*////////////////////////////////////////////////////////////////////////
//
// INTEL CORPORATION PROPRIETARY INFORMATION
// This software is supplied under the terms of a license agreement or
// nondisclosure agreement with Intel Corporation and may not be copied
// or disclosed except in accordance with the terms of that agreement.
// Copyright (c) 2005 Intel Corporation. All Rights Reserved.
//
//   Intel(R)  Integrated Performance Primitives
//
//     USC Echo Canceller sample
//
// By downloading and installing this sample, you hereby agree that the
// accompanying Materials are being provided to you under the terms and
// conditions of the End User License Agreement for the Intel(R) Integrated
// Performance Primitives product previously accepted by you. Please refer
// to the file ipplic.htm located in the root directory of your Intel(R) IPP
// product installation for more information.
//
// Purpose: Load static EC components.
//
////////////////////////////////////////////////////////////////////////*/

#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include "usc_ec.h"
#include "util.h"
#include "loadec.h"

#define MAXLENSTR       256

typedef struct _StaticNameTableEC {
   char ECName[8];
   void *funcPtr;
}StaticNameTableEC;

StaticNameTableEC LinkedEC[] = {
#if (defined _USC_EC_FP || defined _USC_EC_ALL)
   "EC_FP",&USC_ECFP_Fxns,
#endif
//#if (defined _USC_EC_INT || defined _USC_EC_ALL)
   "EC_INT",&USC_ECINT_Fxns,
//#endif
   "END",NULL
};

void EnumerateStaticLinkedEC(FILE *fptrLog)
{
   char pString[MAX_LEN_STRING];
   int i = 0;
   if(fptrLog == NULL) return;
   OutputInfoString(0, fptrLog, "Following echo cancellers are linked:\n");
   while(strcmp(LinkedEC[i].ECName,"END") != 0) {
      sprintf(pString, "           %s\n",LinkedEC[i].ECName);
      OutputInfoString(0, fptrLog, (const char*)pString);
      i++;
   }
   return;
}

void* GetObjectEC(const char *name)
{
   void *pAddr = NULL;
   int i=0;
   while(strcmp(LinkedEC[i].ECName,"END")!=0) {
      if(strcmp(name, LinkedEC[i].ECName) == 0) {
         pAddr = LinkedEC[i].funcPtr;
         break;
      }
      i++;
   }
   return pAddr;
}

int GetNumLinkedEC(void)
{
   int i = 0;
   while(strcmp(LinkedEC[i].ECName,"END")!=0) {
      i++;
   }
   return i;
}

int LoadECByName(const char *name, USC_EC_Params *params, FILE *f_log)
{
   char pString[MAX_LEN_STRING];

   params->pUSC_EC_Fxns = NULL;
   params->pUSC_EC_Fxns = (USC_EC_Fxns*)GetObjectEC(name);
   if(params->pUSC_EC_Fxns) {
      sprintf(pString, " Staticly loaded echo canceller: %s\n", name);
      OutputInfoString(1, f_log, (const char*)pString);
      return 0;
   } else return -1;
}



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -