📄 umc_reverb_filter.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-2006 Intel Corporation. All Rights Reserved.
//
*/
#ifndef __UMC_REVERB_FILTER_H__
#define __UMC_REVERB_FILTER_H__
#include "umc_base_codec.h"
#include "reverb_filter.h"
#include "ipp.h"
namespace UMC
{
class ReverbFilterParams : public BaseCodecParams
{
DYNAMIC_CAST_DECL_BASE(ReverbFilterParams);
public:
Ipp32s fileSampleRate;
Ipp32s fileChannels;
Ipp32s maxFrameLen;
bool eReflect;
bool lReflect;
Ipp32f eReflectScale;
Ipp32f decayTime;
Ipp32f outputLevel;
Ipp32s EarlyReflectionsDelayLineLen; /* needed for user to clean the filter */
};
class ReverbFilter : public BaseCodec
{
DYNAMIC_CAST_DECL_BASE(ReverbFilter);
public:
ReverbFilter();
~ReverbFilter(void);
Status Init(BaseCodecParams* params);
Status GetFrame(MediaData* in_data, MediaData* out_data);
Status Close();
Status Reset() {
return UMC_ERR_NOT_IMPLEMENTED;
};
Status GetInfo(BaseCodecParams* info);
Status SetParams(BaseCodecParams* params);
protected:
Ipp16s **frameBuf16;
Ipp32f **frameBuf32;
Ipp32f **frameBuf32dst;
ReverbState *pRevState;
FileInfo *pFileInfo;
Ipp32s RevFIRFilterInit(ReverbState *);
Ipp32s RevFIRFilterFree(ReverbState *);
Ipp32s Reverberate(Ipp32f **, Ipp32f **, Ipp32s, ReverbState *);
Ipp32s RevExtraDelayInit(ReverbState *);
Ipp32s RevExtraDelayFree(ReverbState *);
Ipp32s RevCombFilterInit(ReverbState *);
Ipp32s RevCombFilterFree(ReverbState *);
Ipp32s RevAPFilterInit(ReverbState *);
Ipp32s RevAPFilterFree(ReverbState *);
};
}
#endif /* __UMC_REVERB_FILTER_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -