├── FILELIST
├── README.md
├── libviperfx_x64_linux.so
├── viperfx_intf.c
└── viperfx_intf.h
/FILELIST:
--------------------------------------------------------------------------------
1 | libviperfx_x64_linux.so -- x86_64 Linux, libc.so.6
2 |
3 | TO BE UPDATED.
4 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # viperfx_core_binary
2 | 这里将会发布适配各种操作系统和平台的ViPER音效核心,以闭源二进制的方式存在。
3 | 你可以参照使用示例来使用ViPER音效核心。在使用这里的文件时,请务必接受下述内容:
4 | 1、本仓库里的内容为不开源内容,绝对禁止以GPL协议来使用。
5 | 2、本仓库里的内容绝对禁止用在商业用途,包括相关联的广告用途、品牌用途等。
6 | 3、使用后,请在软件醒目位置标示“蝰蛇声学”的版权。
7 | 4、当你对本仓库的内容以任何形式重分发时,请携带这里所述的所有内容,确保使用者或接收者明确这些条款。
8 |
9 | 当前支持的操作系统和平台:
10 | x86_64 Linux,libc.so.6
11 | 待增加...
12 | 参考使用实例:
13 | gst-plugin-viperfx, https://github.com/vipersaudio/gst-plugin-viperfx
14 |
15 |
16 | This repository contains the ViPER FX core which supports various operating systems and platforms.
17 | Please be sure to read the following terms when using the ViPER FX core:
18 | 1.The ViPER FX cores are all in formed of binary, so MUST NOT use it under GPL license.
19 | 2.The ViPER FX cores are all restrict disallowed in commercial use (exclude nonprofit charities).
20 | 3.Please add a copyright information ("Copyright (C) 2010-2017 ViPER ACOUSTICS") of the ViPER FX core in your software when you use it.
21 | 4.When you redistribute the contents of this repository in any form, please bring all of the contents described here to ensure that the users or recipients specify these terms.
22 |
23 | Currently supported operating systems and platforms:
24 | x86_64 Linux,libc.so.6
25 | TO BE ADDED.
26 | Reference examples:
27 | gst-plugin-viperfx, https://github.com/vipersaudio/gst-plugin-viperfx
28 |
--------------------------------------------------------------------------------
/libviperfx_x64_linux.so:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/vipersaudio/viperfx_core_binary/6f7d0da725affe854f083baf5d90c70e172e4488/libviperfx_x64_linux.so
--------------------------------------------------------------------------------
/viperfx_intf.c:
--------------------------------------------------------------------------------
1 | #include
2 | #include
3 | #include
4 | #include "viperfx_intf.h"
5 |
6 | int viperfx_command_set_px4_vx4x1 (viperfx_interface * intf,
7 | int32_t param, int32_t value)
8 | {
9 | int32_t cmd_data[3];
10 | cmd_data[0] = param;
11 | cmd_data[1] = sizeof(int32_t);
12 | cmd_data[2] = value;
13 |
14 | return (!intf->command (intf, COMMAND_CODE_SET,
15 | sizeof(cmd_data), cmd_data, NULL, NULL));
16 | }
17 |
18 | int viperfx_command_set_px4_vx4x2 (viperfx_interface * intf,
19 | int32_t param, int32_t value_l, int32_t value_h)
20 | {
21 | int32_t cmd_data[4];
22 | cmd_data[0] = param;
23 | cmd_data[1] = sizeof(int32_t) << 1;
24 | cmd_data[2] = value_l;
25 | cmd_data[3] = value_h;
26 |
27 | return (!intf->command (intf, COMMAND_CODE_SET,
28 | sizeof(cmd_data), cmd_data, NULL, NULL));
29 | }
30 |
31 | int viperfx_command_set_px4_vx4x3 (viperfx_interface * intf,
32 | int32_t param, int32_t value_l, int32_t value_h, int32_t value_e)
33 | {
34 | int32_t cmd_data[5];
35 | cmd_data[0] = param;
36 | cmd_data[1] = sizeof(int32_t) * 3;
37 | cmd_data[2] = value_l;
38 | cmd_data[3] = value_h;
39 | cmd_data[4] = value_e;
40 |
41 | return (!intf->command (intf, COMMAND_CODE_SET,
42 | sizeof(cmd_data), cmd_data, NULL, NULL));
43 | }
44 |
45 | int viperfx_command_set_ir_path (viperfx_interface * intf,
46 | const char * pathname)
47 | {
48 | char cmd_data[4 + 256];
49 | int32_t * cmd_data_int = (int32_t *)cmd_data;
50 | int32_t pathlen = (int32_t) strlen(pathname);
51 |
52 | if (pathlen >= 256)
53 | return FALSE;
54 |
55 | memset (cmd_data, 0, sizeof(cmd_data));
56 | cmd_data_int[0] = PARAM_HPFX_CONV_UPDATEKERNEL;
57 | cmd_data_int[1] = 256;
58 | cmd_data_int[2] = pathlen;
59 | memcpy (&cmd_data_int[3],
60 | pathname, pathlen);
61 |
62 | return (!intf->command (intf, COMMAND_CODE_SET,
63 | sizeof(cmd_data), cmd_data, NULL, NULL));
64 | }
65 |
--------------------------------------------------------------------------------
/viperfx_intf.h:
--------------------------------------------------------------------------------
1 | #ifndef _VIPERFX_INTF_H
2 | #define _VIPERFX_INTF_H
3 |
4 | #include
5 |
6 | #ifndef TRUE
7 | #define TRUE 1
8 | #endif
9 | #ifndef FALSE
10 | #define FALSE 0
11 | #endif
12 |
13 | #define VIPERFX_LOAD(xfilename) (dlopen(xfilename,RTLD_NOW))
14 | #define VIPERFX_UNLOAD(xhandle) (dlclose(xhandle))
15 | #define VIPERFX_ENTRYPOINT(xhandle) \
16 | ((fn_viperfx_ep)(dlsym(xhandle,"viperfx_create_instance")))
17 |
18 | #ifdef __cplusplus
19 | extern "C" {
20 | #endif
21 |
22 | enum
23 | {
24 | COMMAND_CODE_GET = 0x01,
25 | COMMAND_CODE_SET,
26 | };
27 |
28 | enum
29 | {
30 | PARAM_GET_STATUS_BEGIN = 0x08000,
31 | PARAM_GET_DRIVER_VERSION,
32 | PARAM_GET_NEONENABLED,
33 | PARAM_GET_ENABLED,
34 | PARAM_GET_DRVCANWORK,
35 | PARAM_GET_EFFECT_TYPE,
36 | PARAM_GET_SAMPLINGRATE,
37 | PARAM_GET_CONVKNLID,
38 | PARAM_GET_STATUS_END
39 | };
40 |
41 | enum
42 | {
43 | PARAM_SET_STATUS_BEGIN = 0x09000,
44 | PARAM_SET_RESET_STATUS,
45 | PARAM_SET_SAMPLINGRATE,
46 | PARAM_SET_DOPROCESS_STATUS,
47 | PARAM_SET_STATUS_END
48 | };
49 |
50 | enum
51 | {
52 | PARAM_PROCESSUNIT_FX_BEGIN = 0x10000,
53 |
54 | PARAM_FX_TYPE_SWITCH,
55 | PARAM_HPFX_CONV_PROCESS_ENABLED,
56 | PARAM_HPFX_CONV_UPDATEKERNEL,
57 | /*****************************************/
58 | // Please use PARAM_HPFX_CONV_UPDATEKERNEL instead
59 | PARAM_HPFX_CONV_PREPAREBUFFER,
60 | PARAM_HPFX_CONV_SETBUFFER,
61 | PARAM_HPFX_CONV_COMMITBUFFER,
62 | /*****************************************/
63 | PARAM_HPFX_CONV_CROSSCHANNEL,
64 | PARAM_HPFX_VHE_PROCESS_ENABLED,
65 | PARAM_HPFX_VHE_EFFECT_LEVEL,
66 | PARAM_HPFX_VDDC_PROCESS_ENABLED,
67 | PARAM_HPFX_VDDC_COEFFS,
68 | PARAM_HPFX_VSE_PROCESS_ENABLED,
69 | PARAM_HPFX_VSE_REFERENCE_BARK,
70 | PARAM_HPFX_VSE_BARK_RECONSTRUCT,
71 | PARAM_HPFX_FIREQ_PROCESS_ENABLED,
72 | PARAM_HPFX_FIREQ_BANDLEVEL,
73 | PARAM_HPFX_COLM_PROCESS_ENABLED,
74 | PARAM_HPFX_COLM_WIDENING,
75 | PARAM_HPFX_COLM_MIDIMAGE,
76 | PARAM_HPFX_COLM_DEPTH,
77 | PARAM_HPFX_DIFFSURR_PROCESS_ENABLED,
78 | PARAM_HPFX_DIFFSURR_DELAYTIME,
79 | PARAM_HPFX_REVB_PROCESS_ENABLED,
80 | PARAM_HPFX_REVB_ROOMSIZE,
81 | PARAM_HPFX_REVB_WIDTH,
82 | PARAM_HPFX_REVB_DAMP,
83 | PARAM_HPFX_REVB_WET,
84 | PARAM_HPFX_REVB_DRY,
85 | PARAM_HPFX_AGC_PROCESS_ENABLED,
86 | PARAM_HPFX_AGC_RATIO,
87 | PARAM_HPFX_AGC_VOLUME,
88 | PARAM_HPFX_AGC_MAXSCALER,
89 | PARAM_HPFX_DYNSYS_PROCESS_ENABLED,
90 | PARAM_HPFX_DYNSYS_XCOEFFS,
91 | PARAM_HPFX_DYNSYS_YCOEFFS,
92 | PARAM_HPFX_DYNSYS_SIDEGAIN,
93 | PARAM_HPFX_DYNSYS_BASSGAIN,
94 | PARAM_HPFX_VIPERBASS_PROCESS_ENABLED,
95 | PARAM_HPFX_VIPERBASS_MODE,
96 | PARAM_HPFX_VIPERBASS_SPEAKER,
97 | PARAM_HPFX_VIPERBASS_BASSGAIN,
98 | PARAM_HPFX_VIPERCLARITY_PROCESS_ENABLED,
99 | PARAM_HPFX_VIPERCLARITY_MODE,
100 | PARAM_HPFX_VIPERCLARITY_CLARITY,
101 | PARAM_HPFX_CURE_PROCESS_ENABLED,
102 | PARAM_HPFX_CURE_CROSSFEED,
103 | PARAM_HPFX_TUBE_PROCESS_ENABLED,
104 | PARAM_HPFX_ANALOGX_PROCESS_ENABLED,
105 | PARAM_HPFX_ANALOGX_MODE,
106 | PARAM_HPFX_OUTPUT_VOLUME,
107 | PARAM_HPFX_OUTPUT_PAN,
108 | PARAM_HPFX_LIMITER_THRESHOLD,
109 | PARAM_SPKFX_CONV_PROCESS_ENABLED,
110 | PARAM_SPKFX_CONV_UPDATEKERNEL,
111 | PARAM_SPKFX_CONV_PREPAREBUFFER,
112 | PARAM_SPKFX_CONV_SETBUFFER,
113 | PARAM_SPKFX_CONV_COMMITBUFFER,
114 | PARAM_SPKFX_CONV_CROSSCHANNEL,
115 | PARAM_SPKFX_FIREQ_PROCESS_ENABLED,
116 | PARAM_SPKFX_FIREQ_BANDLEVEL,
117 | PARAM_SPKFX_REVB_PROCESS_ENABLED,
118 | PARAM_SPKFX_REVB_ROOMSIZE,
119 | PARAM_SPKFX_REVB_WIDTH,
120 | PARAM_SPKFX_REVB_DAMP,
121 | PARAM_SPKFX_REVB_WET,
122 | PARAM_SPKFX_REVB_DRY,
123 | PARAM_SPKFX_AGC_PROCESS_ENABLED,
124 | PARAM_SPKFX_AGC_RATIO,
125 | PARAM_SPKFX_AGC_VOLUME,
126 | PARAM_SPKFX_AGC_MAXSCALER,
127 | PARAM_SPKFX_OUTPUT_VOLUME,
128 | PARAM_SPKFX_LIMITER_THRESHOLD,
129 | PARAM_HPFX_FETCOMP_PROCESS_ENABLED,
130 | PARAM_HPFX_FETCOMP_THRESHOLD,
131 | PARAM_HPFX_FETCOMP_RATIO,
132 | PARAM_HPFX_FETCOMP_KNEEWIDTH,
133 | PARAM_HPFX_FETCOMP_AUTOKNEE_ENABLED,
134 | PARAM_HPFX_FETCOMP_GAIN,
135 | PARAM_HPFX_FETCOMP_AUTOGAIN_ENABLED,
136 | PARAM_HPFX_FETCOMP_ATTACK,
137 | PARAM_HPFX_FETCOMP_AUTOATTACK_ENABLED,
138 | PARAM_HPFX_FETCOMP_RELEASE,
139 | PARAM_HPFX_FETCOMP_AUTORELEASE_ENABLED,
140 | PARAM_HPFX_FETCOMP_META_KNEEMULTI,
141 | PARAM_HPFX_FETCOMP_META_MAXATTACK,
142 | PARAM_HPFX_FETCOMP_META_MAXRELEASE,
143 | PARAM_HPFX_FETCOMP_META_CREST,
144 | PARAM_HPFX_FETCOMP_META_ADAPT,
145 | PARAM_HPFX_FETCOMP_META_NOCLIP_ENABLED,
146 | PARAM_SPKFX_FETCOMP_PROCESS_ENABLED,
147 | PARAM_SPKFX_FETCOMP_THRESHOLD,
148 | PARAM_SPKFX_FETCOMP_RATIO,
149 | PARAM_SPKFX_FETCOMP_KNEEWIDTH,
150 | PARAM_SPKFX_FETCOMP_AUTOKNEE_ENABLED,
151 | PARAM_SPKFX_FETCOMP_GAIN,
152 | PARAM_SPKFX_FETCOMP_AUTOGAIN_ENABLED,
153 | PARAM_SPKFX_FETCOMP_ATTACK,
154 | PARAM_SPKFX_FETCOMP_AUTOATTACK_ENABLED,
155 | PARAM_SPKFX_FETCOMP_RELEASE,
156 | PARAM_SPKFX_FETCOMP_AUTORELEASE_ENABLED,
157 | PARAM_SPKFX_FETCOMP_META_KNEEMULTI,
158 | PARAM_SPKFX_FETCOMP_META_MAXATTACK,
159 | PARAM_SPKFX_FETCOMP_META_MAXRELEASE,
160 | PARAM_SPKFX_FETCOMP_META_CREST,
161 | PARAM_SPKFX_FETCOMP_META_ADAPT,
162 | PARAM_SPKFX_FETCOMP_META_NOCLIP_ENABLED,
163 |
164 | PARAM_PROCESSUNIT_FX_END
165 | };
166 |
167 | enum
168 | {
169 | ViPER_FX_TYPE_NONE = 0,
170 |
171 | ViPER_FX_TYPE_HEADPHONE = 1,
172 | ViPER_FX_TYPE_SPEAKER = 2,
173 |
174 | ViPER_FX_TYPE_COUNT
175 | };
176 |
177 | typedef struct _viperfx_interface {
178 | int32_t (*set_samplerate) (
179 | struct _viperfx_interface * __this, int32_t sample_rate);
180 |
181 | int32_t (*set_channels) (
182 | struct _viperfx_interface * __this, int32_t channels);
183 |
184 | void (*reset) (struct _viperfx_interface * __this);
185 |
186 | int32_t (*command) (struct _viperfx_interface * __this,
187 | uint32_t cmd_code, uint32_t cmd_size, void * cmd_data,
188 | uint32_t * reply_size, void * reply_data);
189 |
190 | void (*process) (struct _viperfx_interface * __this,
191 | int16_t * pcm_buffer, int32_t frame_count);
192 |
193 | void (*release) (struct _viperfx_interface * __this);
194 |
195 | void * private_data;
196 | } viperfx_interface;
197 |
198 | typedef viperfx_interface* (*fn_viperfx_ep)(void);
199 |
200 | int viperfx_command_set_px4_vx4x1 (viperfx_interface * intf,
201 | int32_t param, int32_t value);
202 | int viperfx_command_set_px4_vx4x2 (viperfx_interface * intf,
203 | int32_t param, int32_t value_l, int32_t value_h);
204 | int viperfx_command_set_px4_vx4x3 (viperfx_interface * intf,
205 | int32_t param, int32_t value_l, int32_t value_h, int32_t value_e);
206 | int viperfx_command_set_ir_path (viperfx_interface * intf,
207 | const char * pathname);
208 |
209 | #ifdef __cplusplus
210 | }
211 | #endif
212 |
213 | #endif
214 |
--------------------------------------------------------------------------------