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

📄 ec_api.h

📁 这是在PCA下的基于IPP库示例代码例子,在网上下了IPP的库之后,设置相关参数就可以编译该代码.
💻 H
字号:
/* /////////////////////////////////////////////////////////////////////////////
//
//                  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 EC 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: Echo Canceller header file.
//
*/


#ifndef __EC_API_H__
#define __EC_API_H__

#include "ippsc.h"

#ifdef __cplusplus
extern "C" {
#endif

typedef enum op_code_enum {
    EC_COEFFS_ZERO = 0,
    EC_ADAPTATION_ENABLE,
    EC_ADAPTATION_DISABLE,
    EC_NLP_ENABLE,
    EC_NLP_DISABLE,
    EC_TD_ENABLE,
    EC_TD_DISABLE,
    EC_AH_ENABLE,
    EC_AH_DISABLE,
    EC_ALG1
} ECOpcode;

typedef struct __fbECState fbECState;
typedef struct __sbECState sbECState;
typedef struct __sbfECState sbfECState;

typedef int (*ec_GetFrameSize_ptr)(int *s);
typedef int (*ec_GetSize_ptr)(IppPCMFrequency freq, int taptime_ms, int *s);
typedef int (*ec_GetSendPathDelay_ptr)(int *delay);
typedef int (*ec_Init_ptr)(void *state, IppPCMFrequency freq, int taptime_ms);
typedef int (*ec_ModeOp_ptr)(void *state, ECOpcode op);
typedef int (*ec_ProcessFrame_ptr)(void *state, Ipp32f *rin, Ipp32f *sin, Ipp32f *sout);
typedef int (*ec_setAHFreqShift_ptr)(void *state, int shift);

/* Returns size of buffer for state structure */
int ec_fb_GetSize(IppPCMFrequency freq, int taptime_ms,int *s);
int ec_sb_GetSize(IppPCMFrequency freq, int taptime_ms,int *s);
int ec_sbf_GetSize(IppPCMFrequency freq, int taptime_ms,int *s);
/* Initializes state structure */
int ec_fb_Init(void *state, IppPCMFrequency freq, int taptime_ms);
int ec_sb_Init(void *state, IppPCMFrequency freq, int taptime_ms);
int ec_sbf_Init(void *state, IppPCMFrequency freq, int taptime_ms);

/* Do operation or set mode */
int ec_fb_ModeOp(void *state, ECOpcode op);
int ec_sb_ModeOp(void *state, ECOpcode op);
int ec_sbf_ModeOp(void *state, ECOpcode op);

/* Process one frame */
int ec_fb_ProcessFrame(void *state, Ipp32f *rin, Ipp32f *sin, Ipp32f *sout);
int ec_sb_ProcessFrame(void *state, Ipp32f *rin, Ipp32f *sin, Ipp32f *sout);
int ec_sbf_ProcessFrame(void *state, Ipp32f *rin, Ipp32f *sin, Ipp32f *sout);

/* Returns size of frame */
int ec_fb_GetFrameSize(int *s);
int ec_sbf_GetFrameSize(int *s);
int ec_sb_GetFrameSize(int *s);

/* Returns delay introduced to send-path */
int ec_fb_GetSendPathDelay(int *delay);
int ec_sb_GetSendPathDelay(int *delay);
int ec_sbf_GetSendPathDelay(int *delay);

int ec_sb_setAHFreqShift(void *state, int shift);
int ec_sbf_setAHFreqShift(void *state, int shift);
int ec_fb_setAHFreqShift(void *state, int shift);
#ifdef __cplusplus
}
#endif
#endif /* __EC_API_H__ */

⌨️ 快捷键说明

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