0bd0d3 import alsa-plugins-1.1.6-1.el7

Authored and Committed by centosrcm 6 years ago
    import alsa-plugins-1.1.6-1.el7
    
        
file modified
+1 -1
.alsa-plugins.metadata CHANGED
@@ -1 +1 @@
1
- 280eb0d9810e463059747d01760a5ac3f44d7057 SOURCES/alsa-plugins-1.1.1.tar.bz2
1
+ a3601513f1a54eaef606744c9c9f4e9d4d44bf40 SOURCES/alsa-plugins-1.1.6.tar.bz2
file modified
+1 -1
.gitignore CHANGED
@@ -1 +1 @@
1
- SOURCES/alsa-plugins-1.1.1.tar.bz2
1
+ SOURCES/alsa-plugins-1.1.6.tar.bz2
SOURCES/10-samplerate.conf DELETED
@@ -1,11 +0,0 @@
1
- # samplerate plugin configuration
2
- # $Id: samplerate.conf,v 1.2 2008/03/09 15:50:49 lkundrak Exp $
3
-
4
- pcm.my_rate {
5
- type rate
6
- slave.pcm "hw"
7
- converter "samplerate"
8
- hint {
9
- description "External rate converter"
10
- }
11
- }
file removed
-11
SOURCES/10-speex.conf DELETED
@@ -1,11 +0,0 @@
1
- # samplerate plugin configuration
2
- # $Id$
3
-
4
- pcm.my_rate {
5
- type rate
6
- slave.pcm "hw"
7
- converter "speexrate"
8
- hint {
9
- description "Rate Converter Plugin Using Speex Resampler"
10
- }
11
- }
file removed
-10
SOURCES/50-arcamav.conf DELETED
@@ -1,10 +0,0 @@
1
- # arcam-av plugin configuration
2
- # $Id$
3
-
4
- ctl.arcam_av {
5
- type arcam_av
6
- port /dev/ttyS0
7
- hint {
8
- description "Arcam-AV Amplifier"
9
- }
10
- }
SOURCES/50-pcm-oss.conf DELETED
@@ -1,9 +0,0 @@
1
- # pcm-oss plugin configuration
2
-
3
- pcm.oss {
4
- type oss
5
- device /dev/dsp
6
- hint {
7
- description "Open Sound System"
8
- }
9
- }
file removed
-10
SOURCES/50-upmix.conf DELETED
@@ -1,10 +0,0 @@
1
- # upmix plugin configuration
2
- # $Id: upmix.conf,v 1.2 2008/03/09 15:50:49 lkundrak Exp $
3
-
4
- pcm.upmix51 {
5
- type upmix
6
- slave.pcm "surround51"
7
- hint {
8
- description "Upmixer channel expander"
9
- }
10
- }
SOURCES/97-vdownmix.conf DELETED
@@ -1,18 +0,0 @@
1
- # vdownmix plugin configuration
2
- # $Id$
3
-
4
- pcm.!surround51 {
5
- type vdownmix
6
- slave.pcm "default"
7
- hint {
8
- description "Downmixer to stereo from surround51"
9
- }
10
- }
11
-
12
- pcm.!surround40 {
13
- type vdownmix
14
- slave.pcm "default"
15
- hint {
16
- description "Downmixer to stereo from surround40"
17
- }
18
- }
file removed
-13
SOURCES/98-maemo.conf DELETED
@@ -1,13 +0,0 @@
1
- # PCM
2
- pcm.!default {
3
- type alsa_dsp
4
- playback_device_file ["/dev/dsptask/pcm2"]
5
- recording_device_file ["/dev/dsptask/pcm_rec"]
6
- }
7
-
8
- # Mixer
9
- ctl.!default {
10
- type dsp_ctl
11
- playback_devices ["/dev/dsptask/pcm2"]
12
- recording_devices ["/dev/dsptask/pcm_rec"]
13
- }
SOURCES/alsa-plugins-1.1.6-post.patch ADDED
@@ -0,0 +1,2354 @@
1
+ From e8fabec7adc70220f52588dc170d90d146b92ba7 Mon Sep 17 00:00:00 2001
2
+ From: Jaroslav Kysela <perex@perex.cz>
3
+ Date: Thu, 5 Apr 2018 09:23:09 +0200
4
+ Subject: [PATCH 1/8] samplerate: fix unused variable warning
5
+
6
+ Signed-off-by: Jaroslav Kysela <perex@perex.cz>
7
+ ---
8
+ rate/rate_samplerate.c | 4 ++--
9
+ 1 file changed, 2 insertions(+), 2 deletions(-)
10
+
11
+ diff --git a/rate/rate_samplerate.c b/rate/rate_samplerate.c
12
+ index 0b14a59..100d6f2 100644
13
+ --- a/rate/rate_samplerate.c
14
+ +++ b/rate/rate_samplerate.c
15
+ @@ -154,14 +154,14 @@ static void pcm_src_close(void *obj)
16
+ }
17
+
18
+ #if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
19
+ -static int get_supported_rates(void *obj, unsigned int *rate_min,
20
+ +static int get_supported_rates(void *obj ATTRIBUTE_UNUSED, unsigned int *rate_min,
21
+ unsigned int *rate_max)
22
+ {
23
+ *rate_min = *rate_max = 0; /* both unlimited */
24
+ return 0;
25
+ }
26
+
27
+ -static void dump(void *obj, snd_output_t *out)
28
+ +static void dump(void *obj ATTRIBUTE_UNUSED, snd_output_t *out)
29
+ {
30
+ snd_output_printf(out, "Converter: libsamplerate\n");
31
+ }
32
+ --
33
+ 2.13.6
34
+
35
+
36
+ From 6e40eb5fd346207021a95d06bc30205a537926ea Mon Sep 17 00:00:00 2001
37
+ From: Jaroslav Kysela <perex@perex.cz>
38
+ Date: Wed, 4 Apr 2018 19:57:56 +0200
39
+ Subject: [PATCH 2/8] configure: add --with-alsaaddondir, add default config
40
+ files for plugins
41
+
42
+ Signed-off-by: Jaroslav Kysela <perex@perex.cz>
43
+ ---
44
+ a52/60-a52-encoder.conf | 38 ++++++++++++++++++++++++++
45
+ a52/Makefile.am | 4 +++
46
+ a52/pcm_a52.c | 2 +-
47
+ arcam-av/50-arcam-av-ctl.conf | 16 +++++++++++
48
+ arcam-av/Makefile.am | 4 +++
49
+ configure.ac | 12 +++++++++
50
+ jack/50-jack.conf | 18 +++++++++++++
51
+ jack/Makefile.am | 4 +++
52
+ maemo/98-maemo.conf | 11 ++++++++
53
+ maemo/Makefile.am | 4 +++
54
+ mix/60-upmix.conf | 26 ++++++++++++++++++
55
+ mix/60-vdownmix.conf | 24 +++++++++++++++++
56
+ mix/Makefile.am | 5 +++-
57
+ oss/50-oss.conf | 26 ++++++++++++++++++
58
+ oss/Makefile.am | 4 +++
59
+ pph/10-speexrate.conf | 28 +++++++++++++++++++
60
+ pph/Makefile.am | 4 +++
61
+ pulse/50-pulseaudio.conf | 15 ++++++-----
62
+ pulse/Makefile.am | 4 +--
63
+ rate-lavc/10-rate-lavc.conf | 28 +++++++++++++++++++
64
+ rate-lavc/Makefile.am | 4 +++
65
+ rate/10-samplerate.conf | 28 +++++++++++++++++++
66
+ rate/Makefile.am | 4 +++
67
+ speex/60-speex.conf | 63 +++++++++++++++++++++++++++++++++++++++++++
68
+ speex/Makefile.am | 4 +++
69
+ usb_stream/98-usb-stream.conf | 27 +++++++++++++++++++
70
+ usb_stream/Makefile.am | 4 +++
71
+ 27 files changed, 401 insertions(+), 10 deletions(-)
72
+ create mode 100644 a52/60-a52-encoder.conf
73
+ create mode 100644 arcam-av/50-arcam-av-ctl.conf
74
+ create mode 100644 jack/50-jack.conf
75
+ create mode 100644 maemo/98-maemo.conf
76
+ create mode 100644 mix/60-upmix.conf
77
+ create mode 100644 mix/60-vdownmix.conf
78
+ create mode 100644 oss/50-oss.conf
79
+ create mode 100644 pph/10-speexrate.conf
80
+ create mode 100644 rate-lavc/10-rate-lavc.conf
81
+ create mode 100644 rate/10-samplerate.conf
82
+ create mode 100644 speex/60-speex.conf
83
+ create mode 100644 usb_stream/98-usb-stream.conf
84
+
85
+ diff --git a/a52/60-a52-encoder.conf b/a52/60-a52-encoder.conf
86
+ new file mode 100644
87
+ index 0000000..346c94f
88
+ --- /dev/null
89
+ +++ b/a52/60-a52-encoder.conf
90
+ @@ -0,0 +1,38 @@
91
+ +pcm.a52 {
92
+ + @args [ CARD SLAVE RATE BITRATE CHANNELS ]
93
+ + @args.CARD {
94
+ + type integer
95
+ + default {
96
+ + @func refer
97
+ + name defaults.pcm.card
98
+ + }
99
+ + }
100
+ + @args.SLAVE {
101
+ + type string
102
+ + }
103
+ + @args.RATE {
104
+ + type integer
105
+ + default 48000
106
+ + }
107
+ + @args.BITRATE {
108
+ + type integer
109
+ + default 448
110
+ + }
111
+ + @args.CHANNELS {
112
+ + type string
113
+ + default 6
114
+ + }
115
+ + type a52
116
+ + card $CARD
117
+ + slavepcm $SLAVE
118
+ + rate $RATE
119
+ + bitrate $BITRATE
120
+ + channels $CHANNELS
121
+ + hint {
122
+ + show {
123
+ + @func refer
124
+ + name defaults.namehint.basic
125
+ + }
126
+ + description "Plugin to convert multichannel stream to A52 (AC3) bitstream"
127
+ + }
128
+ +}
129
+ diff --git a/a52/Makefile.am b/a52/Makefile.am
130
+ index 48567b4..cbc1497 100644
131
+ --- a/a52/Makefile.am
132
+ +++ b/a52/Makefile.am
133
+ @@ -1,6 +1,10 @@
134
+ +EXTRA_DIST = 60-a52-encoder.conf
135
+ +
136
+ asound_module_pcm_a52_LTLIBRARIES = libasound_module_pcm_a52.la
137
+ +asound_module_addon_DATA = 60-a52-encoder.conf
138
+
139
+ asound_module_pcm_a52dir = @ALSA_PLUGIN_DIR@
140
+ +asound_module_addondir = @ALSA_ADDON_DIR@
141
+
142
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@ \
143
+ -DAVCODEC_HEADER="@AVCODEC_HEADER@"
144
+ diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c
145
+ index 348d58f..155da36 100644
146
+ --- a/a52/pcm_a52.c
147
+ +++ b/a52/pcm_a52.c
148
+ @@ -937,7 +937,7 @@ SND_PCM_PLUGIN_DEFINE_FUNC(a52)
149
+ goto error;
150
+ }
151
+
152
+ - if (! pcm_string) {
153
+ + if (! pcm_string || pcm_string[0] == '\0') {
154
+ snprintf(devstr, sizeof(devstr),
155
+ "iec958:{AES0 0x%x AES1 0x%x AES2 0x%x AES3 0x%x %s%s}",
156
+ IEC958_AES0_CON_EMPHASIS_NONE | IEC958_AES0_NONAUDIO |
157
+ diff --git a/arcam-av/50-arcam-av-ctl.conf b/arcam-av/50-arcam-av-ctl.conf
158
+ new file mode 100644
159
+ index 0000000..b76caa9
160
+ --- /dev/null
161
+ +++ b/arcam-av/50-arcam-av-ctl.conf
162
+ @@ -0,0 +1,16 @@
163
+ +ctl.arcam_av {
164
+ + @args [ PORT ]
165
+ + @args.PORT {
166
+ + type string
167
+ + default "/dev/ttyUSB0"
168
+ + }
169
+ + type arcam_av
170
+ + port $PORT
171
+ + hint {
172
+ + show {
173
+ + @func refer
174
+ + name defaults.namehint.basic
175
+ + }
176
+ + description "Arcam-AV Amplifier"
177
+ + }
178
+ +}
179
+ diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am
180
+ index 5c7855f..4a54ccd 100644
181
+ --- a/arcam-av/Makefile.am
182
+ +++ b/arcam-av/Makefile.am
183
+ @@ -1,6 +1,10 @@
184
+ +EXTRA_DIST = 50-arcam-av-ctl.conf
185
+ +
186
+ asound_module_ctl_arcam_av_LTLIBRARIES = libasound_module_ctl_arcam_av.la
187
+ +asound_module_addon_DATA = 50-arcam-av-ctl.conf
188
+
189
+ asound_module_ctl_arcam_avdir = @ALSA_PLUGIN_DIR@
190
+ +asound_module_addondir = @ALSA_ADDON_DIR@
191
+
192
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
193
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined
194
+ diff --git a/configure.ac b/configure.ac
195
+ index ecc265b..ae98caa 100644
196
+ --- a/configure.ac
197
+ +++ b/configure.ac
198
+ @@ -206,6 +206,18 @@ AC_DEFINE_UNQUOTED(ALSA_DATA_DIR, "$alsadatadir", [directory containing ALSA dat
199
+ ALSA_DATA_DIR="$alsadatadir"
200
+ AC_SUBST(ALSA_DATA_DIR)
201
+
202
+ +dnl ALSA add-on config directory
203
+ +AC_ARG_WITH(alsaaddondir,
204
+ + AS_HELP_STRING([--with-alsaaddondir=dir],
205
+ + [path where ALSA add-on config files are stored]),
206
+ + alsaaddondir="$withval", alsaaddondir="")
207
+ +if test -z "$alsaaddondir"; then
208
+ + alsaaddondir="/etc/alsa/conf.d"
209
+ +fi
210
+ +AC_DEFINE_UNQUOTED(ALSA_ADDON_DIR, "$alsaaddondir", [directory containing ALSA add-on config files])
211
+ +ALSA_ADDON_DIR="$alsaaddondir"
212
+ +AC_SUBST(ALSA_ADDON_DIR)
213
+ +
214
+ SAVE_PLUGINS_VERSION
215
+
216
+ AC_OUTPUT([
217
+ diff --git a/jack/50-jack.conf b/jack/50-jack.conf
218
+ new file mode 100644
219
+ index 0000000..d780dfc
220
+ --- /dev/null
221
+ +++ b/jack/50-jack.conf
222
+ @@ -0,0 +1,18 @@
223
+ +pcm.jack {
224
+ + type jack
225
+ + playback_ports {
226
+ + 0 alsa_pcm:playback_1
227
+ + 1 alsa_pcm:playback_2
228
+ + }
229
+ + capture_ports {
230
+ + 0 alsa_pcm:capture_1
231
+ + 1 alsa_pcm:capture_2
232
+ + }
233
+ + hint {
234
+ + show {
235
+ + @func refer
236
+ + name defaults.namehint.basic
237
+ + }
238
+ + description "JACK Audio Connection Kit"
239
+ + }
240
+ +}
241
+ diff --git a/jack/Makefile.am b/jack/Makefile.am
242
+ index f913cb6..0a3d6ae 100644
243
+ --- a/jack/Makefile.am
244
+ +++ b/jack/Makefile.am
245
+ @@ -1,6 +1,10 @@
246
+ +EXTRA_DIST = 50-jack.conf
247
+ +
248
+ asound_module_pcm_jack_LTLIBRARIES = libasound_module_pcm_jack.la
249
+ +asound_module_addon_DATA = 50-jack.conf
250
+
251
+ asound_module_pcm_jackdir = @ALSA_PLUGIN_DIR@
252
+ +asound_module_addondir = @ALSA_ADDON_DIR@
253
+
254
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @JACK_CFLAGS@
255
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
256
+ diff --git a/maemo/98-maemo.conf b/maemo/98-maemo.conf
257
+ new file mode 100644
258
+ index 0000000..a9ad6a0
259
+ --- /dev/null
260
+ +++ b/maemo/98-maemo.conf
261
+ @@ -0,0 +1,11 @@
262
+ +pcm.!default {
263
+ + type alsa_dsp
264
+ + playback_device_file [ "/dev/dsptask/pcm2" ]
265
+ + recording_device_file [ "/dev/dsptask/pcm_rec" ]
266
+ +}
267
+ +
268
+ +ctl.!default {
269
+ + type dsp_ctl
270
+ + playback_devices [ "/dev/dsptask/pcm2" ]
271
+ + recording_devices [ "/dev/dsptask/pcm_rec" ]
272
+ +}
273
+ diff --git a/maemo/Makefile.am b/maemo/Makefile.am
274
+ index 2684781..aca481d 100644
275
+ --- a/maemo/Makefile.am
276
+ +++ b/maemo/Makefile.am
277
+ @@ -1,8 +1,12 @@
278
+ +EXTRA_DIST = 98-maemo.conf
279
+ +
280
+ asound_module_pcm_alsa_dsp_LTLIBRARIES = libasound_module_pcm_alsa_dsp.la
281
+ asound_module_ctl_dsp_ctl_LTLIBRARIES = libasound_module_ctl_dsp_ctl.la
282
+ +asound_module_addon_DATA = 98-maemo.conf
283
+
284
+ asound_module_pcm_alsa_dspdir = @ALSA_PLUGIN_DIR@
285
+ asound_module_ctl_dsp_ctldir = @ALSA_PLUGIN_DIR@
286
+ +asound_module_addondir = @ALSA_ADDON_DIR@
287
+
288
+ AM_CFLAGS = -Wall -O2 @ALSA_CFLAGS@ $(DBUS_CFLAGS)
289
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
290
+ diff --git a/mix/60-upmix.conf b/mix/60-upmix.conf
291
+ new file mode 100644
292
+ index 0000000..028cfe1
293
+ --- /dev/null
294
+ +++ b/mix/60-upmix.conf
295
+ @@ -0,0 +1,26 @@
296
+ +pcm.upmix {
297
+ + @args [ SLAVE CHANNELS DELAY ]
298
+ + @args.SLAVE {
299
+ + type string
300
+ + default "plug:hw"
301
+ + }
302
+ + @args.CHANNELS {
303
+ + type integer
304
+ + default 6
305
+ + }
306
+ + @args.DELAY {
307
+ + type integer
308
+ + default 0
309
+ + }
310
+ + type upmix
311
+ + channels $CHANNELS
312
+ + delay $DELAY
313
+ + slave.pcm $SLAVE
314
+ + hint {
315
+ + show {
316
+ + @func refer
317
+ + name defaults.namehint.basic
318
+ + }
319
+ + description "Plugin for channel upmix (4,6,8)"
320
+ + }
321
+ +}
322
+ diff --git a/mix/60-vdownmix.conf b/mix/60-vdownmix.conf
323
+ new file mode 100644
324
+ index 0000000..32e9c56
325
+ --- /dev/null
326
+ +++ b/mix/60-vdownmix.conf
327
+ @@ -0,0 +1,24 @@
328
+ +pcm.vdownmix {
329
+ + @args [ SLAVE CHANNELS DELAY ]
330
+ + @args.SLAVE {
331
+ + type string
332
+ + default "plug:hw"
333
+ + }
334
+ + @args.CHANNELS {
335
+ + type integer
336
+ + default 6
337
+ + }
338
+ + @args.DELAY {
339
+ + type integer
340
+ + default 0
341
+ + }
342
+ + type vdownmix
343
+ + slave.pcm $SLAVE
344
+ + hint {
345
+ + show {
346
+ + @func refer
347
+ + name defaults.namehint.basic
348
+ + }
349
+ + description "Plugin for channel downmix (stereo) with a simple spacialization"
350
+ + }
351
+ +}
352
+ diff --git a/mix/Makefile.am b/mix/Makefile.am
353
+ index e31839a..710606c 100644
354
+ --- a/mix/Makefile.am
355
+ +++ b/mix/Makefile.am
356
+ @@ -1,8 +1,12 @@
357
+ +EXTRA_DIST = 60-upmix.conf 60-vdownmix.conf
358
+ +
359
+ asound_module_pcm_upmix_LTLIBRARIES = libasound_module_pcm_upmix.la
360
+ asound_module_pcm_vdownmix_LTLIBRARIES = libasound_module_pcm_vdownmix.la
361
+ +asound_module_addon_DATA = 60-upmix.conf 60-vdownmix.conf
362
+
363
+ asound_module_pcm_upmixdir = @ALSA_PLUGIN_DIR@
364
+ asound_module_pcm_vdownmixdir = @ALSA_PLUGIN_DIR@
365
+ +asound_module_addondir = @ALSA_ADDON_DIR@
366
+
367
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
368
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
369
+ @@ -11,4 +15,3 @@ libasound_module_pcm_upmix_la_SOURCES = pcm_upmix.c
370
+ libasound_module_pcm_upmix_la_LIBADD = @ALSA_LIBS@
371
+ libasound_module_pcm_vdownmix_la_SOURCES = pcm_vdownmix.c
372
+ libasound_module_pcm_vdownmix_la_LIBADD = @ALSA_LIBS@
373
+ -
374
+ diff --git a/oss/50-oss.conf b/oss/50-oss.conf
375
+ new file mode 100644
376
+ index 0000000..5b2817b
377
+ --- /dev/null
378
+ +++ b/oss/50-oss.conf
379
+ @@ -0,0 +1,26 @@
380
+ +pcm.oss {
381
+ + @args [ DEVICE ]
382
+ + @args.DEVICE {
383
+ + type string
384
+ + default "/dev/dsp"
385
+ + }
386
+ + type oss
387
+ + port $DEVICE
388
+ + hint {
389
+ + show {
390
+ + @func refer
391
+ + name defaults.namehint.basic
392
+ + }
393
+ + description "Open Sound System"
394
+ + }
395
+ +}
396
+ +
397
+ +ctl.oss {
398
+ + @args [ DEVICE ]
399
+ + @args.DEVICE {
400
+ + type string
401
+ + default "/dev/mixer"
402
+ + }
403
+ + type oss
404
+ + device $DEVICE
405
+ +}
406
+ diff --git a/oss/Makefile.am b/oss/Makefile.am
407
+ index 302538b..df83d20 100644
408
+ --- a/oss/Makefile.am
409
+ +++ b/oss/Makefile.am
410
+ @@ -1,8 +1,12 @@
411
+ +EXTRA_DIST = 50-oss.conf
412
+ +
413
+ asound_module_pcm_oss_LTLIBRARIES = libasound_module_pcm_oss.la
414
+ asound_module_ctl_oss_LTLIBRARIES = libasound_module_ctl_oss.la
415
+ +asound_module_addon_DATA = 50-oss.conf
416
+
417
+ asound_module_pcm_ossdir = @ALSA_PLUGIN_DIR@
418
+ asound_module_ctl_ossdir = @ALSA_PLUGIN_DIR@
419
+ +asound_module_addondir = @ALSA_ADDON_DIR@
420
+
421
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
422
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
423
+ diff --git a/pph/10-speexrate.conf b/pph/10-speexrate.conf
424
+ new file mode 100644
425
+ index 0000000..1d9eae9
426
+ --- /dev/null
427
+ +++ b/pph/10-speexrate.conf
428
+ @@ -0,0 +1,28 @@
429
+ +pcm.speexrate {
430
+ + @args [ SLAVE RATE CONVERTER ]
431
+ + @args.SLAVE {
432
+ + type string
433
+ + default "plug:hw"
434
+ + }
435
+ + @args.RATE {
436
+ + type integer
437
+ + default 48000
438
+ + }
439
+ + @args.CONVERTER {
440
+ + type string
441
+ + default "speexrate"
442
+ + }
443
+ + type rate
444
+ + converter $CONVERTER
445
+ + slave {
446
+ + pcm $SLAVE
447
+ + rate $RATE
448
+ + }
449
+ + hint {
450
+ + show {
451
+ + @func refer
452
+ + name defaults.namehint.basic
453
+ + }
454
+ + description "Rate Converter Plugin Using Speex Resampler"
455
+ + }
456
+ +}
457
+ diff --git a/pph/Makefile.am b/pph/Makefile.am
458
+ index 551e5bd..abb950b 100644
459
+ --- a/pph/Makefile.am
460
+ +++ b/pph/Makefile.am
461
+ @@ -1,6 +1,10 @@
462
+ +EXTRA_DIST = 10-speexrate.conf
463
+ +
464
+ asound_module_rate_speexrate_LTLIBRARIES = libasound_module_rate_speexrate.la
465
+ +asound_module_addon_DATA = 10-speexrate.conf
466
+
467
+ asound_module_rate_speexratedir = @ALSA_PLUGIN_DIR@
468
+ +asound_module_addondir = @ALSA_ADDON_DIR@
469
+
470
+ AM_CFLAGS = -DVAR_ARRAYS -Wall -g @ALSA_CFLAGS@
471
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
472
+ diff --git a/pulse/50-pulseaudio.conf b/pulse/50-pulseaudio.conf
473
+ index dd85dab..62da207 100644
474
+ --- a/pulse/50-pulseaudio.conf
475
+ +++ b/pulse/50-pulseaudio.conf
476
+ @@ -1,13 +1,16 @@
477
+ # Add a specific named PulseAudio pcm and ctl (typically useful for testing)
478
+
479
+ pcm.pulse {
480
+ - type pulse
481
+ - hint {
482
+ - show on
483
+ - description "PulseAudio Sound Server"
484
+ - }
485
+ + type pulse
486
+ + hint {
487
+ + show {
488
+ + @func refer
489
+ + name defaults.namehint.basic
490
+ + }
491
+ + description "PulseAudio Sound Server"
492
+ + }
493
+ }
494
+
495
+ ctl.pulse {
496
+ - type pulse
497
+ + type pulse
498
+ }
499
+ diff --git a/pulse/Makefile.am b/pulse/Makefile.am
500
+ index a5550b9..835808c 100644
501
+ --- a/pulse/Makefile.am
502
+ +++ b/pulse/Makefile.am
503
+ @@ -3,12 +3,12 @@ EXTRA_DIST = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
504
+ asound_module_pcm_LTLIBRARIES = libasound_module_pcm_pulse.la
505
+ asound_module_ctl_LTLIBRARIES = libasound_module_ctl_pulse.la
506
+ asound_module_conf_LTLIBRARIES = libasound_module_conf_pulse.la
507
+ -asound_module_data_DATA = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
508
+ +asound_module_addon_DATA = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
509
+
510
+ asound_module_pcmdir = @ALSA_PLUGIN_DIR@
511
+ asound_module_ctldir = @ALSA_PLUGIN_DIR@
512
+ asound_module_confdir = @ALSA_PLUGIN_DIR@
513
+ -asound_module_datadir = @ALSA_DATA_DIR@/alsa.conf.d
514
+ +asound_module_addondir = @ALSA_ADDON_DIR@
515
+
516
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(PTHREAD_CFLAGS) $(pulseaudio_CFLAGS) -D_GNU_SOURCE
517
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
518
+ diff --git a/rate-lavc/10-rate-lavc.conf b/rate-lavc/10-rate-lavc.conf
519
+ new file mode 100644
520
+ index 0000000..bab1694
521
+ --- /dev/null
522
+ +++ b/rate-lavc/10-rate-lavc.conf
523
+ @@ -0,0 +1,28 @@
524
+ +pcm.lavcrate {
525
+ + @args [ SLAVE RATE CONVERTER ]
526
+ + @args.SLAVE {
527
+ + type string
528
+ + default "plug:hw"
529
+ + }
530
+ + @args.RATE {
531
+ + type integer
532
+ + default 48000
533
+ + }
534
+ + @args.CONVERTER {
535
+ + type string
536
+ + default "lavcrate"
537
+ + }
538
+ + type rate
539
+ + converter $CONVERTER
540
+ + slave {
541
+ + pcm $SLAVE
542
+ + rate $RATE
543
+ + }
544
+ + hint {
545
+ + show {
546
+ + @func refer
547
+ + name defaults.namehint.basic
548
+ + }
549
+ + description "Rate Converter Plugin Using AVC Library"
550
+ + }
551
+ +}
552
+ diff --git a/rate-lavc/Makefile.am b/rate-lavc/Makefile.am
553
+ index 5cffd44..5f66472 100644
554
+ --- a/rate-lavc/Makefile.am
555
+ +++ b/rate-lavc/Makefile.am
556
+ @@ -1,6 +1,10 @@
557
+ +EXTRA_DIST = 10-rate-lavc.conf
558
+ +
559
+ asound_module_rate_lavcrate_LTLIBRARIES = libasound_module_rate_lavcrate.la
560
+ +asound_module_addon_DATA = 10-rate-lavc.conf
561
+
562
+ asound_module_rate_lavcratedir = @ALSA_PLUGIN_DIR@
563
+ +asound_module_addondir = @ALSA_ADDON_DIR@
564
+
565
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@ \
566
+ -DAVCODEC_HEADER="@AVCODEC_HEADER@"
567
+ diff --git a/rate/10-samplerate.conf b/rate/10-samplerate.conf
568
+ new file mode 100644
569
+ index 0000000..0d2e604
570
+ --- /dev/null
571
+ +++ b/rate/10-samplerate.conf
572
+ @@ -0,0 +1,28 @@
573
+ +pcm.samplerate {
574
+ + @args [ SLAVE RATE CONVERTER ]
575
+ + @args.SLAVE {
576
+ + type string
577
+ + default "plug:hw"
578
+ + }
579
+ + @args.RATE {
580
+ + type integer
581
+ + default 48000
582
+ + }
583
+ + @args.CONVERTER {
584
+ + type string
585
+ + default "samplerate"
586
+ + }
587
+ + type rate
588
+ + converter $CONVERTER
589
+ + slave {
590
+ + pcm $SLAVE
591
+ + rate $RATE
592
+ + }
593
+ + hint {
594
+ + show {
595
+ + @func refer
596
+ + name defaults.namehint.basic
597
+ + }
598
+ + description "Rate Converter Plugin Using Samplerate Library"
599
+ + }
600
+ +}
601
+ diff --git a/rate/Makefile.am b/rate/Makefile.am
602
+ index 0605bfd..25014d8 100644
603
+ --- a/rate/Makefile.am
604
+ +++ b/rate/Makefile.am
605
+ @@ -1,6 +1,10 @@
606
+ +EXTRA_DIST = 10-samplerate.conf
607
+ +
608
+ asound_module_rate_samplerate_LTLIBRARIES = libasound_module_rate_samplerate.la
609
+ +asound_module_addon_DATA = 10-samplerate.conf
610
+
611
+ asound_module_rate_sampleratedir = @ALSA_PLUGIN_DIR@
612
+ +asound_module_addondir = @ALSA_ADDON_DIR@
613
+
614
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(samplerate_CFLAGS)
615
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
616
+ diff --git a/speex/60-speex.conf b/speex/60-speex.conf
617
+ new file mode 100644
618
+ index 0000000..bf2ce95
619
+ --- /dev/null
620
+ +++ b/speex/60-speex.conf
621
+ @@ -0,0 +1,63 @@
622
+ +pcm.speex {
623
+ + @args [ SLAVE AGC AGC_LEVEL DENOISE ECHO
624
+ + DEREVERB DEREVERB_DECAY DEREVERB_LEVEL
625
+ + FRAMES FILTER_LENGTH ]
626
+ + @args.SLAVE {
627
+ + type string
628
+ + default "plug:hw"
629
+ + }
630
+ + @args.AGC {
631
+ + type string
632
+ + default off
633
+ + }
634
+ + @args.AGC_LEVEL {
635
+ + type integer
636
+ + default 8000
637
+ + }
638
+ + @args.DENOISE {
639
+ + type string
640
+ + default on
641
+ + }
642
+ + @args.ECHO {
643
+ + type string
644
+ + default off
645
+ + }
646
+ + @args.DEREVERB {
647
+ + type string
648
+ + default off
649
+ + }
650
+ + @args.DEREVERB_DECAY {
651
+ + type real
652
+ + default 0
653
+ + }
654
+ + @args.DEREVERB_LEVEL {
655
+ + type real
656
+ + default 0
657
+ + }
658
+ + @args.FRAMES {
659
+ + type integer
660
+ + default 64
661
+ + }
662
+ + @args.FILTER_LENGTH {
663
+ + type integer
664
+ + default 256
665
+ + }
666
+ + type speex
667
+ + agc $AGC
668
+ + agc_level $AGC_LEVEL
669
+ + denoise $DENOISE
670
+ + echo $ECHO
671
+ + dereverb $DEREVERB
672
+ + dereverb_decay $DEREVERB_DECAY
673
+ + dereverb_level $DEREVERB_LEVEL
674
+ + frames $FRAMES
675
+ + filter_length $FILTER_LENGTH
676
+ + slave.pcm $SLAVE
677
+ + hint {
678
+ + show {
679
+ + @func refer
680
+ + name defaults.namehint.basic
681
+ + }
682
+ + description "Plugin using Speex DSP (resample, agc, denoise, echo, dereverb)"
683
+ + }
684
+ +}
685
+ diff --git a/speex/Makefile.am b/speex/Makefile.am
686
+ index 7d84190..7891954 100644
687
+ --- a/speex/Makefile.am
688
+ +++ b/speex/Makefile.am
689
+ @@ -1,6 +1,10 @@
690
+ +EXTRA_DIST = 60-speex.conf
691
+ +
692
+ asound_module_pcm_speex_LTLIBRARIES = libasound_module_pcm_speex.la
693
+ +asound_module_addon_DATA = 60-speex.conf
694
+
695
+ asound_module_pcm_speexdir = @ALSA_PLUGIN_DIR@
696
+ +asound_module_addondir = @ALSA_ADDON_DIR@
697
+
698
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @speexdsp_CFLAGS@
699
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
700
+ diff --git a/usb_stream/98-usb-stream.conf b/usb_stream/98-usb-stream.conf
701
+ new file mode 100644
702
+ index 0000000..2efc95f
703
+ --- /dev/null
704
+ +++ b/usb_stream/98-usb-stream.conf
705
+ @@ -0,0 +1,27 @@
706
+ +pcm.usbstream {
707
+ + @args [ CARD RATE PERIOD_SIZE ]
708
+ + @args.CARD {
709
+ + type string
710
+ + default {
711
+ + func refer
712
+ + name defaults.pcm.card
713
+ + }
714
+ + }
715
+ + @args.RATE {
716
+ + type integer
717
+ + }
718
+ + @args.PERIOD_SIZE {
719
+ + type integer
720
+ + }
721
+ + type usb_stream
722
+ + card $CARD
723
+ + rate $RATE
724
+ + period_size $PERIOD_SIZE
725
+ + hint {
726
+ + show {
727
+ + @func refer
728
+ + name defaults.namehint.basic
729
+ + }
730
+ + description "USB Stream Output"
731
+ + }
732
+ +}
733
+ diff --git a/usb_stream/Makefile.am b/usb_stream/Makefile.am
734
+ index 50a98a0..b606d3d 100644
735
+ --- a/usb_stream/Makefile.am
736
+ +++ b/usb_stream/Makefile.am
737
+ @@ -1,6 +1,10 @@
738
+ +EXTRA_DIST = 98-usb-stream.conf
739
+ +
740
+ asound_module_pcm_usb_stream_LTLIBRARIES = libasound_module_pcm_usb_stream.la
741
+ +asound_module_addon_DATA = 98-usb-stream.conf
742
+
743
+ asound_module_pcm_usb_streamdir = @ALSA_PLUGIN_DIR@
744
+ +asound_module_addondir = @ALSA_ADDON_DIR@
745
+
746
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
747
+ AM_LDFLAGS = -module -avoid-version -export-dynamic $(LDFLAGS_NOUNDEFINED)
748
+ --
749
+ 2.13.6
750
+
751
+
752
+ From cc6bed233a3167d806834460befca2c6d655f0fb Mon Sep 17 00:00:00 2001
753
+ From: Jaroslav Kysela <perex@perex.cz>
754
+ Date: Fri, 13 Apr 2018 13:37:36 +0200
755
+ Subject: [PATCH 3/8] config/Makefile: make everything modular
756
+
757
+ Signed-off-by: Jaroslav Kysela <perex@perex.cz>
758
+ ---
759
+ Makefile.am | 21 ++++++++++++++++++---
760
+ configure.ac | 20 +++++++++++++++++++-
761
+ doc/Makefile.am | 37 ++++++++++++++++++++++++++++++++++---
762
+ 3 files changed, 71 insertions(+), 7 deletions(-)
763
+
764
+ diff --git a/Makefile.am b/Makefile.am
765
+ index 69cfe0d..303bc83 100644
766
+ --- a/Makefile.am
767
+ +++ b/Makefile.am
768
+ @@ -1,4 +1,10 @@
769
+ -SUBDIRS = oss mix usb_stream arcam-av doc
770
+ +SUBDIRS = doc
771
+ +if HAVE_OSS
772
+ +SUBDIRS += oss
773
+ +endif
774
+ +if HAVE_MIX
775
+ +SUBDIRS += mix
776
+ +endif
777
+ if HAVE_JACK
778
+ SUBDIRS += jack
779
+ endif
780
+ @@ -8,8 +14,17 @@ endif
781
+ if HAVE_SAMPLERATE
782
+ SUBDIRS += rate
783
+ endif
784
+ -if HAVE_AVCODEC
785
+ -SUBDIRS += a52 rate-lavc
786
+ +if HAVE_A52
787
+ +SUBDIRS += a52
788
+ +endif
789
+ +if HAVE_AVCRATE
790
+ +SUBDIRS += rate-lavc
791
+ +endif
792
+ +if HAVE_USBSTREAM
793
+ +SUBDIRS += usb_stream
794
+ +endif
795
+ +if HAVE_ARCAMAV
796
+ +SUBDIRS += arcam-av
797
+ endif
798
+ if HAVE_MAEMO_PLUGIN
799
+ SUBDIRS += maemo
800
+ diff --git a/configure.ac b/configure.ac
801
+ index ae98caa..2d7e6aa 100644
802
+ --- a/configure.ac
803
+ +++ b/configure.ac
804
+ @@ -135,6 +135,22 @@ AC_SUBST(AVCODEC_CFLAGS)
805
+ AC_SUBST(AVCODEC_LIBS)
806
+ AC_SUBST(AVCODEC_HEADER)
807
+
808
+ +AC_ARG_ENABLE([a52],
809
+ + AS_HELP_STRING([--disable-a52], [Disable building of A52 encoder plugin]))
810
+ +
811
+ +if test "x$enable_a52" != "xno" -a "$HAVE_AVCODEC" = "yes"; then
812
+ + HAVE_A52=yes
813
+ +fi
814
+ +AM_CONDITIONAL(HAVE_A52, test x$HAVE_A52 = xyes)
815
+ +
816
+ +AC_ARG_ENABLE([avcrate],
817
+ + AS_HELP_STRING([--disable-avcrate], [Disable building of AVC rate plugin]))
818
+ +
819
+ +if test "x$enable_avcrate" != "xno" -a "$HAVE_AVCODEC" = "yes"; then
820
+ + HAVE_AVCRATE=yes
821
+ +fi
822
+ +AM_CONDITIONAL(HAVE_AVCRATE, test x$HAVE_AVCRATE = xyes)
823
+ +
824
+ AC_ARG_ENABLE([speexdsp],
825
+ AS_HELP_STRING([--disable-speexdsp], [Disable building of speexdsp plugin]))
826
+
827
+ @@ -260,12 +276,14 @@ if test "$HAVE_SAMPLERATE" = "yes"; then
828
+ fi
829
+ echo "Maemo plugin: $HAVE_MAEMO_PLUGIN"
830
+ echo " Using Osso resource manager: $use_maemo_rm"
831
+ -echo "A52, lavc plugins: $HAVE_AVCODEC"
832
+ if test "$HAVE_AVCODEC" = "yes"; then
833
+ + echo "AVCodec config:"
834
+ echo " AVCODEC_CFLAGS: $AVCODEC_CFLAGS"
835
+ echo " AVCODEC_LIBS: $AVCODEC_LIBS"
836
+ echo " AVCODEC_HEADER: $AVCODEC_HEADER"
837
+ fi
838
+ +echo "A52 plugin: $HAVE_A52"
839
+ +echo "AVC rate plugin: $HAVE_AVCRATE"
840
+ echo "Speex rate plugin: $PPH"
841
+ echo "Speex preprocess plugin: $HAVE_SPEEXDSP"
842
+ if test "$HAVE_SPEEX" = "yes"; then
843
+ diff --git a/doc/Makefile.am b/doc/Makefile.am
844
+ index 19fa0d2..0d6f6e5 100644
845
+ --- a/doc/Makefile.am
846
+ +++ b/doc/Makefile.am
847
+ @@ -1,4 +1,35 @@
848
+ -EXTRA_DIST = README-pcm-oss README-jack README-pulse README-maemo \
849
+ - upmix.txt vdownmix.txt samplerate.txt a52.txt lavcrate.txt \
850
+ - speexrate.txt speexdsp.txt README-arcam-av
851
+ +EXTRA_DIST =
852
+
853
+ +if HAVE_OSS
854
+ +EXTRA_DIST += README-pcm-oss
855
+ +endif
856
+ +if HAVE_MIX
857
+ +EXTRA_DIST += upmix.txt vdownmix.txt
858
+ +endif
859
+ +if HAVE_JACK
860
+ +EXTRA_DIST += README-jack
861
+ +endif
862
+ +if HAVE_PULSE
863
+ +EXTRA_DIST += README-pulse
864
+ +endif
865
+ +if HAVE_MAEMO_PLUGIN
866
+ +EXTRA_DIST += README-maemo
867
+ +endif
868
+ +if HAVE_SAMPLERATE
869
+ +EXTRA_DIST += samplerate.txt
870
+ +endif
871
+ +if HAVE_A52
872
+ +EXTRA_DIST += a52.txt
873
+ +endif
874
+ +if HAVE_AVCRATE
875
+ +EXTRA_DIST += lavcrate.txt
876
+ +endif
877
+ +if HAVE_PPH
878
+ +EXTRA_DIST += speexrate.txt
879
+ +endif
880
+ +if HAVE_SPEEXDSP
881
+ +EXTRA_DIST += speexdsp.txt
882
+ +endif
883
+ +if HAVE_ARCAMAV
884
+ +EXTRA_DIST += README-arcam-av
885
+ +endif
886
+ --
887
+ 2.13.6
888
+
889
+
890
+ From 24db7f59d76984e2901f2834a297735853cab776 Mon Sep 17 00:00:00 2001
891
+ From: Jaroslav Kysela <perex@perex.cz>
892
+ Date: Mon, 16 Apr 2018 16:24:29 +0200
893
+ Subject: [PATCH 4/8] Move rate-lavc to rate-lav subdirectory and update to use
894
+ libavresample
895
+
896
+ - --disable-avcodec renamed to --disable-libav
897
+ - --avcodec-includedir renamed to --libav-includedir
898
+ - --avcodec-libdir renamed to --libav-libdir
899
+ - --disable-lavcrate renamed to --disable-lavrate
900
+
901
+ The .c changes are from Anton Khirnov. The rest is from Jaroslav Kysela.
902
+
903
+ From: Anton Khirnov
904
+ Signed-off-by: Jaroslav Kysela <perex@perex.cz>
905
+ ---
906
+ Makefile.am | 4 +-
907
+ a52/Makefile.am | 5 +-
908
+ a52/pcm_a52.c | 2 +-
909
+ configure.ac | 85 +++---
910
+ doc/Makefile.am | 4 +-
911
+ doc/{lavcrate.txt => lavrate.txt} | 10 +-
912
+ .../10-rate-lavc.conf => rate-lav/10-rate-lav.conf | 6 +-
913
+ rate-lav/Makefile.am | 25 ++
914
+ {rate-lavc => rate-lav}/gcd.h | 0
915
+ rate-lav/rate_lavrate.c | 235 +++++++++++++++++
916
+ rate-lavc/Makefile.am | 26 --
917
+ rate-lavc/rate_lavcrate.c | 291 ---------------------
918
+ 12 files changed, 311 insertions(+), 382 deletions(-)
919
+ rename doc/{lavcrate.txt => lavrate.txt} (76%)
920
+ rename rate-lavc/10-rate-lavc.conf => rate-lav/10-rate-lav.conf (73%)
921
+ create mode 100644 rate-lav/Makefile.am
922
+ rename {rate-lavc => rate-lav}/gcd.h (100%)
923
+ create mode 100644 rate-lav/rate_lavrate.c
924
+ delete mode 100644 rate-lavc/Makefile.am
925
+ delete mode 100644 rate-lavc/rate_lavcrate.c
926
+
927
+ diff --git a/Makefile.am b/Makefile.am
928
+ index 303bc83..27f61a4 100644
929
+ --- a/Makefile.am
930
+ +++ b/Makefile.am
931
+ @@ -17,8 +17,8 @@ endif
932
+ if HAVE_A52
933
+ SUBDIRS += a52
934
+ endif
935
+ -if HAVE_AVCRATE
936
+ -SUBDIRS += rate-lavc
937
+ +if HAVE_LAVRATE
938
+ +SUBDIRS += rate-lav
939
+ endif
940
+ if HAVE_USBSTREAM
941
+ SUBDIRS += usb_stream
942
+ diff --git a/a52/Makefile.am b/a52/Makefile.am
943
+ index cbc1497..4ac8edd 100644
944
+ --- a/a52/Makefile.am
945
+ +++ b/a52/Makefile.am
946
+ @@ -6,9 +6,8 @@ asound_module_addon_DATA = 60-a52-encoder.conf
947
+ asound_module_pcm_a52dir = @ALSA_PLUGIN_DIR@
948
+ asound_module_addondir = @ALSA_ADDON_DIR@
949
+
950
+ -AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@ \
951
+ - -DAVCODEC_HEADER="@AVCODEC_HEADER@"
952
+ +AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @LIBAV_CFLAGS@
953
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
954
+
955
+ libasound_module_pcm_a52_la_SOURCES = pcm_a52.c
956
+ -libasound_module_pcm_a52_la_LIBADD = @ALSA_LIBS@ @AVCODEC_LIBS@
957
+ +libasound_module_pcm_a52_la_LIBADD = @ALSA_LIBS@ @LIBAV_LIBS@ @LIBAV_CODEC_LIBS@
958
+ diff --git a/a52/pcm_a52.c b/a52/pcm_a52.c
959
+ index 155da36..29ce45f 100644
960
+ --- a/a52/pcm_a52.c
961
+ +++ b/a52/pcm_a52.c
962
+ @@ -25,7 +25,7 @@
963
+ #include <alsa/asoundlib.h>
964
+ #include <alsa/pcm_external.h>
965
+ #include <alsa/pcm_plugin.h>
966
+ -#include AVCODEC_HEADER
967
+ +#include <libavcodec/avcodec.h>
968
+ #include <libavutil/avutil.h>
969
+
970
+ /* some compatibility wrappers */
971
+ diff --git a/configure.ac b/configure.ac
972
+ index 2d7e6aa..cb1ae2d 100644
973
+ --- a/configure.ac
974
+ +++ b/configure.ac
975
+ @@ -89,67 +89,55 @@ if test "$use_maemo_rm" = "yes"; then
976
+ fi
977
+ fi
978
+
979
+ -AC_ARG_ENABLE([avcodec],
980
+ - AS_HELP_STRING([--disable-avcodec], [Don't build plugins depending on avcodec (a52)]))
981
+ +AC_ARG_ENABLE([libav],
982
+ + AS_HELP_STRING([--disable-avlib], [Do not build plugins depending on libav/ffmpeg (a52,lavrate...)]))
983
+
984
+ -if test "x$enable_avcodec" != "xno"; then
985
+ - PKG_CHECK_MODULES(AVCODEC, [libavcodec libavutil], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no])
986
+ +if test "x$enable_libav" != "xno"; then
987
+ + PKG_CHECK_MODULES(LIBAV, [libavcodec libavutil libavresample], [HAVE_LIBAV=yes], [HAVE_LIBAV=no])
988
+ fi
989
+
990
+ -if test "x$HAVE_AVCODEC" = "xno"; then
991
+ - AC_ARG_WITH([avcodec-includedir],
992
+ - AS_HELP_STRING([--with-avcodec-includedir=dir],
993
+ - [AVcodec include directory]),
994
+ - [AVCODEC_CFLAGS="-I$withval"], [AVCODEC_CFLAGS=""])
995
+ - AC_ARG_WITH([avcodec-libdir],
996
+ - AS_HELP_STRING([--with-avcodec-libdir=dir],
997
+ - [AVcodec library directory]),
998
+ - [AVCODEC_LIBS="-L$withval"], [AVCODEC_LIBS=""])
999
+ +if test "x$HAVE_LIBAV" = "xno"; then
1000
+ + AC_ARG_WITH([libav-includedir],
1001
+ + AS_HELP_STRING([--with-libav-includedir=dir],
1002
+ + [Libav/ffmpeg include directory]),
1003
+ + [LIBAV_CFLAGS="-I$(withval)"], [LIBAV_CFLAGS=""])
1004
+ + AC_ARG_WITH([libav-libdir],
1005
+ + AS_HELP_STRING([--with-libav-libdir=dir],
1006
+ + [Libav/ffmpeg library directory]),
1007
+ + [LIBAV_LIBS="-L$withval"], [LIBAV_LIBS=""])
1008
+
1009
+ CFLAGS_saved="$CFLAGS"
1010
+ LDFLAGS_saved="$LDFLAGS"
1011
+ - CFLAGS="$CFLAGS $AVCODEC_CFLAGS"
1012
+ - LDFLAGS="$LDFLAGS $AVCODEC_LIBS"
1013
+ - AVCODEC_LIBS="$AVCODEC_LIBS -lavcodec"
1014
+ - AC_CHECK_LIB([avcodec], [avcodec_open], [HAVE_AVCODEC=yes], [HAVE_AVCODEC=no])
1015
+ + CFLAGS="$CFLAGS $LIBAV_CFLAGS"
1016
+ + LDFLAGS="$LDFLAGS $LIBAV_LIBS"
1017
+ + AC_CHECK_LIB([avcodec], [avcodec_open], [HAVE_LIBAV=yes], [HAVE_LIBAV=no])
1018
+ CFLAGS="$CFLAGS_saved"
1019
+ LDFLAGS="$LDFLAGS_saved"
1020
+ + LIBAV_CODEC_LIBS="-lavcodec"
1021
+ + LIBAV_RESAMPLE_LIBS="-lavresample -lavutil"
1022
+ fi
1023
+
1024
+ -if test $HAVE_AVCODEC = yes; then
1025
+ - AVCODEC_HEADER=""
1026
+ - CFLAGS_saved="$CFLAGS"
1027
+ - CFLAGS="$CFLAGS $AVCODEC_CFLAGS"
1028
+ - AC_CHECK_HEADER([ffmpeg/avcodec.h], [AVCODEC_HEADER='<ffmpeg/avcodec.h>'])
1029
+ - if test -z "$AVCODEC_HEADER"; then
1030
+ - AC_CHECK_HEADER([libavcodec/avcodec.h], [AVCODEC_HEADER='<libavcodec/avcodec.h>'])
1031
+ - fi
1032
+ - if test -z "$AVCODEC_HEADER"; then
1033
+ - HAVE_AVCODEC=no
1034
+ - fi
1035
+ - CFLAGS="$CFLAGS_saved"
1036
+ -fi
1037
+ -
1038
+ -AM_CONDITIONAL(HAVE_AVCODEC, test x$HAVE_AVCODEC = xyes)
1039
+ -AC_SUBST(AVCODEC_CFLAGS)
1040
+ -AC_SUBST(AVCODEC_LIBS)
1041
+ -AC_SUBST(AVCODEC_HEADER)
1042
+ +AM_CONDITIONAL(HAVE_LIBAV, test x$HAVE_LIBAV = xyes)
1043
+ +AC_SUBST(LIBAV_CFLAGS)
1044
+ +AC_SUBST(LIBAV_LIBS)
1045
+ +AC_SUBST(LIBAV_CODEC_LIBS)
1046
+ +AC_SUBST(LIBAV_RESAMPLE_LIBS)
1047
+
1048
+ AC_ARG_ENABLE([a52],
1049
+ AS_HELP_STRING([--disable-a52], [Disable building of A52 encoder plugin]))
1050
+
1051
+ -if test "x$enable_a52" != "xno" -a "$HAVE_AVCODEC" = "yes"; then
1052
+ +if test "x$enable_a52" != "xno" -a "$HAVE_LIBAV" = "yes"; then
1053
+ HAVE_A52=yes
1054
+ fi
1055
+ AM_CONDITIONAL(HAVE_A52, test x$HAVE_A52 = xyes)
1056
+
1057
+ -AC_ARG_ENABLE([avcrate],
1058
+ - AS_HELP_STRING([--disable-avcrate], [Disable building of AVC rate plugin]))
1059
+ +AC_ARG_ENABLE([lavrate],
1060
+ + AS_HELP_STRING([--disable-lavrate], [Disable building of libav/ffmpeg rate plugin]))
1061
+
1062
+ -if test "x$enable_avcrate" != "xno" -a "$HAVE_AVCODEC" = "yes"; then
1063
+ - HAVE_AVCRATE=yes
1064
+ +if test "x$enable_lavrate" != "xno" -a "$HAVE_LIBAV" = "yes"; then
1065
+ + HAVE_LAVRATE=yes
1066
+ fi
1067
+ -AM_CONDITIONAL(HAVE_AVCRATE, test x$HAVE_AVCRATE = xyes)
1068
+ +AM_CONDITIONAL(HAVE_LAVRATE, test x$HAVE_LAVRATE = xyes)
1069
+
1070
+ AC_ARG_ENABLE([speexdsp],
1071
+ AS_HELP_STRING([--disable-speexdsp], [Disable building of speexdsp plugin]))
1072
+ @@ -245,7 +233,7 @@ AC_OUTPUT([
1073
+ mix/Makefile
1074
+ rate/Makefile
1075
+ a52/Makefile
1076
+ - rate-lavc/Makefile
1077
+ + rate-lav/Makefile
1078
+ maemo/Makefile
1079
+ doc/Makefile
1080
+ usb_stream/Makefile
1081
+ @@ -276,14 +264,13 @@ if test "$HAVE_SAMPLERATE" = "yes"; then
1082
+ fi
1083
+ echo "Maemo plugin: $HAVE_MAEMO_PLUGIN"
1084
+ echo " Using Osso resource manager: $use_maemo_rm"
1085
+ -if test "$HAVE_AVCODEC" = "yes"; then
1086
+ - echo "AVCodec config:"
1087
+ - echo " AVCODEC_CFLAGS: $AVCODEC_CFLAGS"
1088
+ - echo " AVCODEC_LIBS: $AVCODEC_LIBS"
1089
+ - echo " AVCODEC_HEADER: $AVCODEC_HEADER"
1090
+ +if test "$HAVE_LIBAV" = "yes"; then
1091
+ + echo "Libav/ffmpeg config:"
1092
+ + echo " LIBAV_CFLAGS: $LIBAV_CFLAGS"
1093
+ + echo " LIBAV_LIBS: $LIBAV_LIBS / $LIBAV_CODEC_LIBS / $LIBAV_RESAMPLE_LIBS"
1094
+ fi
1095
+ -echo "A52 plugin: $HAVE_A52"
1096
+ -echo "AVC rate plugin: $HAVE_AVCRATE"
1097
+ +echo "Libav A52 plugin: $HAVE_A52"
1098
+ +echo "Libav rate plugin: $HAVE_LAVRATE"
1099
+ echo "Speex rate plugin: $PPH"
1100
+ echo "Speex preprocess plugin: $HAVE_SPEEXDSP"
1101
+ if test "$HAVE_SPEEX" = "yes"; then
1102
+ diff --git a/doc/Makefile.am b/doc/Makefile.am
1103
+ index 0d6f6e5..7c004e5 100644
1104
+ --- a/doc/Makefile.am
1105
+ +++ b/doc/Makefile.am
1106
+ @@ -21,8 +21,8 @@ endif
1107
+ if HAVE_A52
1108
+ EXTRA_DIST += a52.txt
1109
+ endif
1110
+ -if HAVE_AVCRATE
1111
+ -EXTRA_DIST += lavcrate.txt
1112
+ +if HAVE_LAVRATE
1113
+ +EXTRA_DIST += lavrate.txt
1114
+ endif
1115
+ if HAVE_PPH
1116
+ EXTRA_DIST += speexrate.txt
1117
+ diff --git a/doc/lavcrate.txt b/doc/lavrate.txt
1118
+ similarity index 76%
1119
+ rename from doc/lavcrate.txt
1120
+ rename to doc/lavrate.txt
1121
+ index faf3e25..6575183 100644
1122
+ --- a/doc/lavcrate.txt
1123
+ +++ b/doc/lavrate.txt
1124
+ @@ -1,14 +1,14 @@
1125
+ -Rate Converter Plugin Using libavcodec
1126
+ -======================================
1127
+ +Rate Converter Plugin Using libavresample
1128
+ +=========================================0
1129
+
1130
+ -The plugin in rate-lavc subdirectory is an external rate converter using
1131
+ -libavcodec's resampler. You can use this rate converter plugin by defining a
1132
+ +The plugin in rate-lavr subdirectory is an external rate converter using
1133
+ +libavresample library. You can use this rate converter plugin by defining a
1134
+ rate PCM with "converter" parameter, such as:
1135
+
1136
+ pcm.my_rate {
1137
+ type rate
1138
+ slave.pcm "hw"
1139
+ - converter "lavcrate"
1140
+ + converter "lavrate"
1141
+ }
1142
+
1143
+ The plug plugin has also a similar field, "rate_converter".
1144
+ diff --git a/rate-lavc/10-rate-lavc.conf b/rate-lav/10-rate-lav.conf
1145
+ similarity index 73%
1146
+ rename from rate-lavc/10-rate-lavc.conf
1147
+ rename to rate-lav/10-rate-lav.conf
1148
+ index bab1694..48ede62 100644
1149
+ --- a/rate-lavc/10-rate-lavc.conf
1150
+ +++ b/rate-lav/10-rate-lav.conf
1151
+ @@ -1,4 +1,4 @@
1152
+ -pcm.lavcrate {
1153
+ +pcm.lavrate {
1154
+ @args [ SLAVE RATE CONVERTER ]
1155
+ @args.SLAVE {
1156
+ type string
1157
+ @@ -10,7 +10,7 @@ pcm.lavcrate {
1158
+ }
1159
+ @args.CONVERTER {
1160
+ type string
1161
+ - default "lavcrate"
1162
+ + default "lavrate"
1163
+ }
1164
+ type rate
1165
+ converter $CONVERTER
1166
+ @@ -23,6 +23,6 @@ pcm.lavcrate {
1167
+ @func refer
1168
+ name defaults.namehint.basic
1169
+ }
1170
+ - description "Rate Converter Plugin Using AVC Library"
1171
+ + description "Rate Converter Plugin Using Libav/FFmpeg Library"
1172
+ }
1173
+ }
1174
+ diff --git a/rate-lav/Makefile.am b/rate-lav/Makefile.am
1175
+ new file mode 100644
1176
+ index 0000000..0f6ecb6
1177
+ --- /dev/null
1178
+ +++ b/rate-lav/Makefile.am
1179
+ @@ -0,0 +1,25 @@
1180
+ +EXTRA_DIST = 10-rate-lav.conf
1181
+ +
1182
+ +asound_module_rate_lavrate_LTLIBRARIES = libasound_module_rate_lavrate.la
1183
+ +asound_module_addon_DATA = 10-rate-lav.conf
1184
+ +
1185
+ +asound_module_rate_lavratedir = @ALSA_PLUGIN_DIR@
1186
+ +asound_module_addondir = @ALSA_ADDON_DIR@
1187
+ +
1188
+ +AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @LIBAV_CFLAGS@
1189
+ +AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
1190
+ +
1191
+ +libasound_module_rate_lavrate_la_SOURCES = rate_lavrate.c
1192
+ +libasound_module_rate_lavrate_la_LIBADD = @ALSA_LIBS@ @LIBAV_LIBS@ @LIBAV_RESAMPLE_LIBS@
1193
+ +
1194
+ +noinst_HEADERS = gcd.h
1195
+ +
1196
+ +install-exec-hook:
1197
+ + rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_*.so
1198
+ + $(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_higher.so
1199
+ + $(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_high.so
1200
+ + $(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_fast.so
1201
+ + $(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_faster.so
1202
+ +
1203
+ +uninstall-hook:
1204
+ + rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_*.so
1205
+ diff --git a/rate-lavc/gcd.h b/rate-lav/gcd.h
1206
+ similarity index 100%
1207
+ rename from rate-lavc/gcd.h
1208
+ rename to rate-lav/gcd.h
1209
+ diff --git a/rate-lav/rate_lavrate.c b/rate-lav/rate_lavrate.c
1210
+ new file mode 100644
1211
+ index 0000000..2b992c5
1212
+ --- /dev/null
1213
+ +++ b/rate-lav/rate_lavrate.c
1214
+ @@ -0,0 +1,235 @@
1215
+ +/*
1216
+ + * Rate converter plugin using libavresample
1217
+ + * Copyright (c) 2014 by Anton Khirnov
1218
+ + *
1219
+ + * This library is free software; you can redistribute it and/or
1220
+ + * modify it under the terms of the GNU Lesser General Public
1221
+ + * License as published by the Free Software Foundation; either
1222
+ + * version 2.1 of the License, or (at your option) any later version.
1223
+ + *
1224
+ + * This library is distributed in the hope that it will be useful,
1225
+ + * but WITHOUT ANY WARRANTY; without even the implied warranty of
1226
+ + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1227
+ + * Lesser General Public License for more details.
1228
+ + */
1229
+ +
1230
+ +#include <stdio.h>
1231
+ +#include <alsa/asoundlib.h>
1232
+ +#include <alsa/pcm_rate.h>
1233
+ +
1234
+ +#include <libavresample/avresample.h>
1235
+ +#include <libavutil/channel_layout.h>
1236
+ +#include <libavutil/opt.h>
1237
+ +#include <libavutil/mathematics.h>
1238
+ +#include <libavutil/samplefmt.h>
1239
+ +
1240
+ +
1241
+ +static unsigned int filter_size = 16;
1242
+ +static unsigned int phase_shift = 10; /* auto-adjusts */
1243
+ +static double cutoff = 0; /* auto-adjusts */
1244
+ +
1245
+ +struct rate_src {
1246
+ + AVAudioResampleContext *avr;
1247
+ +
1248
+ + unsigned int in_rate;
1249
+ + unsigned int out_rate;
1250
+ + unsigned int channels;
1251
+ +};
1252
+ +
1253
+ +static snd_pcm_uframes_t input_frames(void *obj ATTRIBUTE_UNUSED,
1254
+ + snd_pcm_uframes_t frames)
1255
+ +{
1256
+ + return frames;
1257
+ +}
1258
+ +
1259
+ +static snd_pcm_uframes_t output_frames(void *obj ATTRIBUTE_UNUSED,
1260
+ + snd_pcm_uframes_t frames)
1261
+ +{
1262
+ + return frames;
1263
+ +}
1264
+ +
1265
+ +static void pcm_src_free(void *obj)
1266
+ +{
1267
+ + struct rate_src *rate = obj;
1268
+ + avresample_free(&rate->avr);
1269
+ +}
1270
+ +
1271
+ +static int pcm_src_init(void *obj, snd_pcm_rate_info_t *info)
1272
+ +{
1273
+ + struct rate_src *rate = obj;
1274
+ + int i, ir, or;
1275
+ +
1276
+ + if (!rate->avr || rate->channels != info->channels) {
1277
+ + int ret;
1278
+ +
1279
+ + pcm_src_free(rate);
1280
+ + rate->channels = info->channels;
1281
+ + ir = rate->in_rate = info->in.rate;
1282
+ + or = rate->out_rate = info->out.rate;
1283
+ + i = av_gcd(or, ir);
1284
+ + if (or > ir) {
1285
+ + phase_shift = or/i;
1286
+ + } else {
1287
+ + phase_shift = ir/i;
1288
+ + }
1289
+ + if (cutoff <= 0.0) {
1290
+ + cutoff = 1.0 - 1.0/filter_size;
1291
+ + if (cutoff < 0.80)
1292
+ + cutoff = 0.80;
1293
+ + }
1294
+ +
1295
+ + rate->avr = avresample_alloc_context();
1296
+ + if (!rate->avr)
1297
+ + return -ENOMEM;
1298
+ +
1299
+ + av_opt_set_int(rate->avr, "in_sample_rate", info->in.rate, 0);
1300
+ + av_opt_set_int(rate->avr, "out_sample_rate", info->out.rate, 0);
1301
+ + av_opt_set_int(rate->avr, "in_sample_format", AV_SAMPLE_FMT_S16, 0);
1302
+ + av_opt_set_int(rate->avr, "out_sample_format", AV_SAMPLE_FMT_S16, 0);
1303
+ + av_opt_set_int(rate->avr, "in_channel_layout", av_get_default_channel_layout(rate->channels), 0);
1304
+ + av_opt_set_int(rate->avr, "out_channel_layout", av_get_default_channel_layout(rate->channels), 0);
1305
+ +
1306
+ + av_opt_set_int(rate->avr, "filter_size", filter_size, 0);
1307
+ + av_opt_set_int(rate->avr, "phase_shift", phase_shift, 0);
1308
+ + av_opt_set_double(rate->avr, "cutoff", cutoff, 0);
1309
+ +
1310
+ + ret = avresample_open(rate->avr);
1311
+ + if (ret < 0) {
1312
+ + avresample_free(&rate->avr);
1313
+ + return -EINVAL;
1314
+ + }
1315
+ + }
1316
+ +
1317
+ + return 0;
1318
+ +}
1319
+ +
1320
+ +static int pcm_src_adjust_pitch(void *obj, snd_pcm_rate_info_t *info)
1321
+ +{
1322
+ + struct rate_src *rate = obj;
1323
+ +
1324
+ + if (info->out.rate != rate->out_rate || info->in.rate != rate->in_rate)
1325
+ + pcm_src_init(obj, info);
1326
+ + return 0;
1327
+ +}
1328
+ +
1329
+ +static void pcm_src_reset(void *obj)
1330
+ +{
1331
+ + struct rate_src *rate = obj;
1332
+ +
1333
+ + if (rate->avr) {
1334
+ +#if 0
1335
+ + avresample_close(rate->avr);
1336
+ + avresample_open(rate->avr);
1337
+ +#endif
1338
+ + }
1339
+ +}
1340
+ +
1341
+ +static void pcm_src_convert_s16(void *obj, int16_t *dst,
1342
+ + unsigned int dst_frames,
1343
+ + const int16_t *src,
1344
+ + unsigned int src_frames)
1345
+ +{
1346
+ + struct rate_src *rate = obj;
1347
+ + int chans = rate->channels;
1348
+ + unsigned int total_in = avresample_get_delay(rate->avr) + src_frames;
1349
+ +
1350
+ + avresample_convert(rate->avr, (uint8_t **)&dst, dst_frames * chans * 2, dst_frames,
1351
+ + (uint8_t **)&src, src_frames * chans * 2, src_frames);
1352
+ +
1353
+ + avresample_set_compensation(rate->avr,
1354
+ + total_in - src_frames > filter_size ? 0 : 1, src_frames);
1355
+ +}
1356
+ +
1357
+ +static void pcm_src_close(void *obj)
1358
+ +{
1359
+ + pcm_src_free(obj);
1360
+ +}
1361
+ +
1362
+ +#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
1363
+ +static int get_supported_rates(void *obj ATTRIBUTE_UNUSED,
1364
+ + unsigned int *rate_min,
1365
+ + unsigned int *rate_max)
1366
+ +{
1367
+ + *rate_min = *rate_max = 0; /* both unlimited */
1368
+ + return 0;
1369
+ +}
1370
+ +
1371
+ +static void dump(void *obj ATTRIBUTE_UNUSED, snd_output_t *out)
1372
+ +{
1373
+ + snd_output_printf(out, "Converter: libavr\n");
1374
+ +}
1375
+ +#endif
1376
+ +
1377
+ +static snd_pcm_rate_ops_t pcm_src_ops = {
1378
+ + .close = pcm_src_close,
1379
+ + .init = pcm_src_init,
1380
+ + .free = pcm_src_free,
1381
+ + .reset = pcm_src_reset,
1382
+ + .adjust_pitch = pcm_src_adjust_pitch,
1383
+ + .convert_s16 = pcm_src_convert_s16,
1384
+ + .input_frames = input_frames,
1385
+ + .output_frames = output_frames,
1386
+ +#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
1387
+ + .version = SND_PCM_RATE_PLUGIN_VERSION,
1388
+ + .get_supported_rates = get_supported_rates,
1389
+ + .dump = dump,
1390
+ +#endif
1391
+ +};
1392
+ +
1393
+ +int pcm_src_open(unsigned int version, void **objp, snd_pcm_rate_ops_t *ops)
1394
+ +
1395
+ +{
1396
+ + struct rate_src *rate;
1397
+ +
1398
+ +#if SND_PCM_RATE_PLUGIN_VERSION < 0x010002
1399
+ + if (version != SND_PCM_RATE_PLUGIN_VERSION) {
1400
+ + fprintf(stderr, "Invalid rate plugin version %x\n", version);
1401
+ + return -EINVAL;
1402
+ + }
1403
+ +#endif
1404
+ + rate = calloc(1, sizeof(*rate));
1405
+ + if (!rate)
1406
+ + return -ENOMEM;
1407
+ +
1408
+ + *objp = rate;
1409
+ + rate->avr = NULL;
1410
+ +#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
1411
+ + if (version == 0x010001)
1412
+ + memcpy(ops, &pcm_src_ops, sizeof(snd_pcm_rate_old_ops_t));
1413
+ + else
1414
+ +#endif
1415
+ + *ops = pcm_src_ops;
1416
+ + return 0;
1417
+ +}
1418
+ +
1419
+ +int SND_PCM_RATE_PLUGIN_ENTRY(lavrate)(unsigned int version, void **objp,
1420
+ + snd_pcm_rate_ops_t *ops)
1421
+ +{
1422
+ + return pcm_src_open(version, objp, ops);
1423
+ +}
1424
+ +int SND_PCM_RATE_PLUGIN_ENTRY(lavrate_higher)(unsigned int version,
1425
+ + void **objp, snd_pcm_rate_ops_t *ops)
1426
+ +{
1427
+ + filter_size = 64;
1428
+ + return pcm_src_open(version, objp, ops);
1429
+ +}
1430
+ +int SND_PCM_RATE_PLUGIN_ENTRY(lavrate_high)(unsigned int version,
1431
+ + void **objp, snd_pcm_rate_ops_t *ops)
1432
+ +{
1433
+ + filter_size = 32;
1434
+ + return pcm_src_open(version, objp, ops);
1435
+ +}
1436
+ +int SND_PCM_RATE_PLUGIN_ENTRY(lavrate_fast)(unsigned int version,
1437
+ + void **objp, snd_pcm_rate_ops_t *ops)
1438
+ +{
1439
+ + filter_size = 8;
1440
+ + return pcm_src_open(version, objp, ops);
1441
+ +}
1442
+ +int SND_PCM_RATE_PLUGIN_ENTRY(lavrate_faster)(unsigned int version,
1443
+ + void **objp, snd_pcm_rate_ops_t *ops)
1444
+ +{
1445
+ + filter_size = 4;
1446
+ + return pcm_src_open(version, objp, ops);
1447
+ +}
1448
+ +
1449
+ +
1450
+ diff --git a/rate-lavc/Makefile.am b/rate-lavc/Makefile.am
1451
+ deleted file mode 100644
1452
+ index 5f66472..0000000
1453
+ --- a/rate-lavc/Makefile.am
1454
+ +++ /dev/null
1455
+ @@ -1,26 +0,0 @@
1456
+ -EXTRA_DIST = 10-rate-lavc.conf
1457
+ -
1458
+ -asound_module_rate_lavcrate_LTLIBRARIES = libasound_module_rate_lavcrate.la
1459
+ -asound_module_addon_DATA = 10-rate-lavc.conf
1460
+ -
1461
+ -asound_module_rate_lavcratedir = @ALSA_PLUGIN_DIR@
1462
+ -asound_module_addondir = @ALSA_ADDON_DIR@
1463
+ -
1464
+ -AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @AVCODEC_CFLAGS@ \
1465
+ - -DAVCODEC_HEADER="@AVCODEC_HEADER@"
1466
+ -AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
1467
+ -
1468
+ -libasound_module_rate_lavcrate_la_SOURCES = rate_lavcrate.c
1469
+ -libasound_module_rate_lavcrate_la_LIBADD = @ALSA_LIBS@ @AVCODEC_LIBS@
1470
+ -
1471
+ -noinst_HEADERS = gcd.h
1472
+ -
1473
+ -install-exec-hook:
1474
+ - rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_*.so
1475
+ - $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_higher.so
1476
+ - $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_high.so
1477
+ - $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_fast.so
1478
+ - $(LN_S) libasound_module_rate_lavcrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_faster.so
1479
+ -
1480
+ -uninstall-hook:
1481
+ - rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavcrate_*.so
1482
+ diff --git a/rate-lavc/rate_lavcrate.c b/rate-lavc/rate_lavcrate.c
1483
+ deleted file mode 100644
1484
+ index 14a2198..0000000
1485
+ --- a/rate-lavc/rate_lavcrate.c
1486
+ +++ /dev/null
1487
+ @@ -1,291 +0,0 @@
1488
+ -/*
1489
+ - * Rate converter plugin using libavcodec's resampler
1490
+ - * Copyright (c) 2007 by Nicholas Kain <njkain@gmail.com>
1491
+ - *
1492
+ - * based on rate converter that uses libsamplerate
1493
+ - * Copyright (c) 2006 by Takashi Iwai <tiwai@suse.de>
1494
+ - *
1495
+ - * This library is free software; you can redistribute it and/or
1496
+ - * modify it under the terms of the GNU Lesser General Public
1497
+ - * License as published by the Free Software Foundation; either
1498
+ - * version 2.1 of the License, or (at your option) any later version.
1499
+ - *
1500
+ - * This library is distributed in the hope that it will be useful,
1501
+ - * but WITHOUT ANY WARRANTY; without even the implied warranty of
1502
+ - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
1503
+ - * Lesser General Public License for more details.
1504
+ - */
1505
+ -
1506
+ -#include <stdio.h>
1507
+ -#include <alsa/asoundlib.h>
1508
+ -#include <alsa/pcm_rate.h>
1509
+ -#include AVCODEC_HEADER
1510
+ -#include "gcd.h"
1511
+ -
1512
+ -static int filter_size = 16;
1513
+ -static int phase_shift = 10; /* auto-adjusts */
1514
+ -static double cutoff = 0; /* auto-adjusts */
1515
+ -
1516
+ -struct rate_src {
1517
+ - struct AVResampleContext *context;
1518
+ - int in_rate;
1519
+ - int out_rate;
1520
+ - int stored;
1521
+ - int point;
1522
+ - int16_t **out;
1523
+ - int16_t **in;
1524
+ - unsigned int channels;
1525
+ -};
1526
+ -
1527
+ -static snd_pcm_uframes_t input_frames(void *obj, snd_pcm_uframes_t frames)
1528
+ -{
1529
+ - return frames;
1530
+ -}
1531
+ -
1532
+ -static snd_pcm_uframes_t output_frames(void *obj, snd_pcm_uframes_t frames)
1533
+ -{
1534
+ - return frames;
1535
+ -}
1536
+ -
1537
+ -static void pcm_src_free(void *obj)
1538
+ -{
1539
+ - struct rate_src *rate = obj;
1540
+ - int i;
1541
+ -
1542
+ - if (rate->out) {
1543
+ - for (i=0; i<rate->channels; i++) {
1544
+ - free(rate->out[i]);
1545
+ - }
1546
+ - free(rate->out);
1547
+ - }
1548
+ - if (rate->in) {
1549
+ - for (i=0; i<rate->channels; i++) {
1550
+ - free(rate->in[i]);
1551
+ - }
1552
+ - free(rate->in);
1553
+ - }
1554
+ - rate->out = rate->in = NULL;
1555
+ -
1556
+ - if (rate->context) {
1557
+ - av_resample_close(rate->context);
1558
+ - rate->context = NULL;
1559
+ - }
1560
+ -}
1561
+ -
1562
+ -static int pcm_src_init(void *obj, snd_pcm_rate_info_t *info)
1563
+ -{
1564
+ - struct rate_src *rate = obj;
1565
+ - int i, ir, or;
1566
+ -
1567
+ - if (! rate->context || rate->channels != info->channels) {
1568
+ - pcm_src_free(rate);
1569
+ - rate->channels = info->channels;
1570
+ - ir = rate->in_rate = info->in.rate;
1571
+ - or = rate->out_rate = info->out.rate;
1572
+ - i = gcd(or, ir);
1573
+ - if (or > ir) {
1574
+ - phase_shift = or/i;
1575
+ - } else {
1576
+ - phase_shift = ir/i;
1577
+ - }
1578
+ - if (cutoff <= 0.0) {
1579
+ - cutoff = 1.0 - 1.0/filter_size;
1580
+ - if (cutoff < 0.80)
1581
+ - cutoff = 0.80;
1582
+ - }
1583
+ - rate->context = av_resample_init(info->out.rate, info->in.rate,
1584
+ - filter_size, phase_shift,
1585
+ - (info->out.rate >= info->in.rate ? 0 : 1), cutoff);
1586
+ - if (!rate->context)
1587
+ - return -EINVAL;
1588
+ - }
1589
+ -
1590
+ - rate->out = malloc(rate->channels * sizeof(int16_t *));
1591
+ - rate->in = malloc(rate->channels * sizeof(int16_t *));
1592
+ - for (i=0; i<rate->channels; i++) {
1593
+ - rate->out[i] = calloc(info->out.period_size * 2,
1594
+ - sizeof(int16_t));
1595
+ - rate->in[i] = calloc(info->in.period_size * 2,
1596
+ - sizeof(int16_t));
1597
+ - }
1598
+ - rate->point = info->in.period_size / 2;
1599
+ - if (!rate->out || !rate->in) {
1600
+ - pcm_src_free(rate);
1601
+ - return -ENOMEM;
1602
+ - }
1603
+ -
1604
+ - return 0;
1605
+ -}
1606
+ -
1607
+ -static int pcm_src_adjust_pitch(void *obj, snd_pcm_rate_info_t *info)
1608
+ -{
1609
+ - struct rate_src *rate = obj;
1610
+ -
1611
+ - if (info->out.rate != rate->out_rate || info->in.rate != rate->in_rate)
1612
+ - pcm_src_init(obj, info);
1613
+ - return 0;
1614
+ -}
1615
+ -
1616
+ -static void pcm_src_reset(void *obj)
1617
+ -{
1618
+ - struct rate_src *rate = obj;
1619
+ - rate->stored = 0;
1620
+ -}
1621
+ -
1622
+ -static void deinterleave(const int16_t *src, int16_t **dst, unsigned int frames,
1623
+ - unsigned int chans, int overflow)
1624
+ -{
1625
+ - int i, j;
1626
+ -
1627
+ - if (chans == 1) {
1628
+ - memcpy(dst + overflow, src, frames*sizeof(int16_t));
1629
+ - } else if (chans == 2) {
1630
+ - for (j=overflow; j<(frames + overflow); j++) {
1631
+ - dst[0][j] = *(src++);
1632
+ - dst[1][j] = *(src++);
1633
+ - }
1634
+ - } else {
1635
+ - for (j=overflow; j<(frames + overflow); j++) {
1636
+ - for (i=0; i<chans; i++) {
1637
+ - dst[i][j] = *(src++);
1638
+ - }
1639
+ - }
1640
+ - }
1641
+ -}
1642
+ -
1643
+ -static void reinterleave(int16_t **src, int16_t *dst, unsigned int frames,
1644
+ - unsigned int chans)
1645
+ -{
1646
+ - int i, j;
1647
+ -
1648
+ - if (chans == 1) {
1649
+ - memcpy(dst, src, frames*sizeof(int16_t));
1650
+ - } else if (chans == 2) {
1651
+ - for (j=0; j<frames; j++) {
1652
+ - *(dst++) = src[0][j];
1653
+ - *(dst++) = src[1][j];
1654
+ - }
1655
+ - } else {
1656
+ - for (j=0; j<frames; j++) {
1657
+ - for (i=0; i<chans; i++) {
1658
+ - *(dst++) = src[i][j];
1659
+ - }
1660
+ - }
1661
+ - }
1662
+ -}
1663
+ -
1664
+ -static void pcm_src_convert_s16(void *obj, int16_t *dst, unsigned int
1665
+ - dst_frames, const int16_t *src, unsigned int src_frames)
1666
+ -{
1667
+ - struct rate_src *rate = obj;
1668
+ - int consumed = 0, chans=rate->channels, ret=0, i;
1669
+ - int total_in = rate->stored + src_frames, new_stored;
1670
+ -
1671
+ - deinterleave(src, rate->in, src_frames, chans, rate->point);
1672
+ - for (i=0; i<chans; ++i) {
1673
+ - ret = av_resample(rate->context, rate->out[i],
1674
+ - rate->in[i]+rate->point-rate->stored, &consumed,
1675
+ - total_in, dst_frames, i == (chans - 1));
1676
+ - new_stored = total_in-consumed;
1677
+ - memmove(rate->in[i]+rate->point-new_stored,
1678
+ - rate->in[i]+rate->point-rate->stored+consumed,
1679
+ - new_stored*sizeof(int16_t));
1680
+ - }
1681
+ - av_resample_compensate(rate->context,
1682
+ - total_in-src_frames>filter_size?0:1, src_frames);
1683
+ - reinterleave(rate->out, dst, ret, chans);
1684
+ - rate->stored = total_in-consumed;
1685
+ -}
1686
+ -
1687
+ -static void pcm_src_close(void *obj)
1688
+ -{
1689
+ - pcm_src_free(obj);
1690
+ -}
1691
+ -
1692
+ -#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
1693
+ -static int get_supported_rates(void *obj, unsigned int *rate_min,
1694
+ - unsigned int *rate_max)
1695
+ -{
1696
+ - *rate_min = *rate_max = 0; /* both unlimited */
1697
+ - return 0;
1698
+ -}
1699
+ -
1700
+ -static void dump(void *obj, snd_output_t *out)
1701
+ -{
1702
+ - snd_output_printf(out, "Converter: liblavc\n");
1703
+ -}
1704
+ -#endif
1705
+ -
1706
+ -static snd_pcm_rate_ops_t pcm_src_ops = {
1707
+ - .close = pcm_src_close,
1708
+ - .init = pcm_src_init,
1709
+ - .free = pcm_src_free,
1710
+ - .reset = pcm_src_reset,
1711
+ - .adjust_pitch = pcm_src_adjust_pitch,
1712
+ - .convert_s16 = pcm_src_convert_s16,
1713
+ - .input_frames = input_frames,
1714
+ - .output_frames = output_frames,
1715
+ -#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
1716
+ - .version = SND_PCM_RATE_PLUGIN_VERSION,
1717
+ - .get_supported_rates = get_supported_rates,
1718
+ - .dump = dump,
1719
+ -#endif
1720
+ -};
1721
+ -
1722
+ -int pcm_src_open(unsigned int version, void **objp, snd_pcm_rate_ops_t *ops)
1723
+ -
1724
+ -{
1725
+ - struct rate_src *rate;
1726
+ -
1727
+ -#if SND_PCM_RATE_PLUGIN_VERSION < 0x010002
1728
+ - if (version != SND_PCM_RATE_PLUGIN_VERSION) {
1729
+ - fprintf(stderr, "Invalid rate plugin version %x\n", version);
1730
+ - return -EINVAL;
1731
+ - }
1732
+ -#endif
1733
+ - rate = calloc(1, sizeof(*rate));
1734
+ - if (!rate)
1735
+ - return -ENOMEM;
1736
+ -
1737
+ - *objp = rate;
1738
+ - rate->context = NULL;
1739
+ -#if SND_PCM_RATE_PLUGIN_VERSION >= 0x010002
1740
+ - if (version == 0x010001)
1741
+ - memcpy(ops, &pcm_src_ops, sizeof(snd_pcm_rate_old_ops_t));
1742
+ - else
1743
+ -#endif
1744
+ - *ops = pcm_src_ops;
1745
+ - return 0;
1746
+ -}
1747
+ -
1748
+ -int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate)(unsigned int version, void **objp,
1749
+ - snd_pcm_rate_ops_t *ops)
1750
+ -{
1751
+ - return pcm_src_open(version, objp, ops);
1752
+ -}
1753
+ -int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_higher)(unsigned int version,
1754
+ - void **objp, snd_pcm_rate_ops_t *ops)
1755
+ -{
1756
+ - filter_size = 64;
1757
+ - return pcm_src_open(version, objp, ops);
1758
+ -}
1759
+ -int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_high)(unsigned int version,
1760
+ - void **objp, snd_pcm_rate_ops_t *ops)
1761
+ -{
1762
+ - filter_size = 32;
1763
+ - return pcm_src_open(version, objp, ops);
1764
+ -}
1765
+ -int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_fast)(unsigned int version,
1766
+ - void **objp, snd_pcm_rate_ops_t *ops)
1767
+ -{
1768
+ - filter_size = 8;
1769
+ - return pcm_src_open(version, objp, ops);
1770
+ -}
1771
+ -int SND_PCM_RATE_PLUGIN_ENTRY(lavcrate_faster)(unsigned int version,
1772
+ - void **objp, snd_pcm_rate_ops_t *ops)
1773
+ -{
1774
+ - filter_size = 4;
1775
+ - return pcm_src_open(version, objp, ops);
1776
+ -}
1777
+ -
1778
+ -
1779
+ --
1780
+ 2.13.6
1781
+
1782
+
1783
+ From 4afd4ab0b276b26b965bae3aadaa31cdb52b1df0 Mon Sep 17 00:00:00 2001
1784
+ From: Jaroslav Kysela <perex@perex.cz>
1785
+ Date: Mon, 16 Apr 2018 17:49:36 +0200
1786
+ Subject: [PATCH 5/8] configure: change --with-alsaaddondir to
1787
+ --with-alsagconfdir and --with-alsalconfdir
1788
+
1789
+ The local add-on configuration directory (/etc/alsa/conf.d) contains
1790
+ links to the global configuration directory (/usr/share/alsa/alsa.conf.d) now.
1791
+
1792
+ Signed-off-by: Jaroslav Kysela <perex@perex.cz>
1793
+ ---
1794
+ a52/Makefile.am | 14 +++++++++++---
1795
+ arcam-av/Makefile.am | 14 +++++++++++---
1796
+ configure.ac | 32 ++++++++++++++++++++++----------
1797
+ install-hooks.am | 16 ++++++++++++++++
1798
+ jack/Makefile.am | 14 +++++++++++---
1799
+ maemo/Makefile.am | 14 +++++++++++---
1800
+ mix/Makefile.am | 14 +++++++++++---
1801
+ oss/Makefile.am | 14 +++++++++++---
1802
+ pph/Makefile.am | 16 ++++++++++++----
1803
+ pulse/Makefile.am | 17 ++++++++++++++---
1804
+ rate-lav/Makefile.am | 13 ++++++++++---
1805
+ rate/Makefile.am | 14 +++++++++++---
1806
+ speex/Makefile.am | 14 +++++++++++---
1807
+ usb_stream/Makefile.am | 14 +++++++++++---
1808
+ 14 files changed, 173 insertions(+), 47 deletions(-)
1809
+ create mode 100644 install-hooks.am
1810
+
1811
+ diff --git a/a52/Makefile.am b/a52/Makefile.am
1812
+ index 4ac8edd..cd5ce45 100644
1813
+ --- a/a52/Makefile.am
1814
+ +++ b/a52/Makefile.am
1815
+ @@ -1,13 +1,21 @@
1816
+ -EXTRA_DIST = 60-a52-encoder.conf
1817
+ +GCONF_FILES = 60-a52-encoder.conf
1818
+ +
1819
+ +EXTRA_DIST = $(GCONF_FILES)
1820
+
1821
+ asound_module_pcm_a52_LTLIBRARIES = libasound_module_pcm_a52.la
1822
+ -asound_module_addon_DATA = 60-a52-encoder.conf
1823
+ +asound_module_gconf_DATA = $(GCONF_FILES)
1824
+
1825
+ asound_module_pcm_a52dir = @ALSA_PLUGIN_DIR@
1826
+ -asound_module_addondir = @ALSA_ADDON_DIR@
1827
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
1828
+
1829
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @LIBAV_CFLAGS@
1830
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
1831
+
1832
+ libasound_module_pcm_a52_la_SOURCES = pcm_a52.c
1833
+ libasound_module_pcm_a52_la_LIBADD = @ALSA_LIBS@ @LIBAV_LIBS@ @LIBAV_CODEC_LIBS@
1834
+ +
1835
+ +include ../install-hooks.am
1836
+ +
1837
+ +install-data-hook: install-conf-hook
1838
+ +
1839
+ +uninstall-local: uninstall-conf-hook
1840
+ diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am
1841
+ index 4a54ccd..c16aec0 100644
1842
+ --- a/arcam-av/Makefile.am
1843
+ +++ b/arcam-av/Makefile.am
1844
+ @@ -1,13 +1,21 @@
1845
+ -EXTRA_DIST = 50-arcam-av-ctl.conf
1846
+ +GCONF_FILES = 50-arcam-av-ctl.conf
1847
+ +
1848
+ +EXTRA_DIST = $(GCONF_FILES)
1849
+
1850
+ asound_module_ctl_arcam_av_LTLIBRARIES = libasound_module_ctl_arcam_av.la
1851
+ -asound_module_addon_DATA = 50-arcam-av-ctl.conf
1852
+ +asound_module_gconf_DATA = $(GCONF_FILES)
1853
+
1854
+ asound_module_ctl_arcam_avdir = @ALSA_PLUGIN_DIR@
1855
+ -asound_module_addondir = @ALSA_ADDON_DIR@
1856
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
1857
+
1858
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
1859
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined
1860
+
1861
+ libasound_module_ctl_arcam_av_la_SOURCES = ctl_arcam_av.c arcam_av.c arcam_av.h
1862
+ libasound_module_ctl_arcam_av_la_LIBADD = @ALSA_LIBS@
1863
+ +
1864
+ +include ../install-hooks.am
1865
+ +
1866
+ +install-data-hook: install-conf-hook
1867
+ +
1868
+ +uninstall-local: uninstall-conf-hook
1869
+ diff --git a/configure.ac b/configure.ac
1870
+ index cb1ae2d..f49bb6b 100644
1871
+ --- a/configure.ac
1872
+ +++ b/configure.ac
1873
+ @@ -210,17 +210,29 @@ AC_DEFINE_UNQUOTED(ALSA_DATA_DIR, "$alsadatadir", [directory containing ALSA dat
1874
+ ALSA_DATA_DIR="$alsadatadir"
1875
+ AC_SUBST(ALSA_DATA_DIR)
1876
+
1877
+ -dnl ALSA add-on config directory
1878
+ -AC_ARG_WITH(alsaaddondir,
1879
+ - AS_HELP_STRING([--with-alsaaddondir=dir],
1880
+ - [path where ALSA add-on config files are stored]),
1881
+ - alsaaddondir="$withval", alsaaddondir="")
1882
+ -if test -z "$alsaaddondir"; then
1883
+ - alsaaddondir="/etc/alsa/conf.d"
1884
+ +dnl ALSA add-on global config directory
1885
+ +AC_ARG_WITH(alsagconfdir,
1886
+ + AS_HELP_STRING([--with-alsagconfdir=dir],
1887
+ + [path where ALSA global add-on config files are stored]),
1888
+ + alsagconfdir="$withval", alsagconfdir="")
1889
+ +if test -z "$alsagconfdir"; then
1890
+ + alsagconfdir="$ALSA_DATA_DIR/alsa.conf.d"
1891
+ fi
1892
+ -AC_DEFINE_UNQUOTED(ALSA_ADDON_DIR, "$alsaaddondir", [directory containing ALSA add-on config files])
1893
+ -ALSA_ADDON_DIR="$alsaaddondir"
1894
+ -AC_SUBST(ALSA_ADDON_DIR)
1895
+ +AC_DEFINE_UNQUOTED(ALSA_GCONF_DIR, "$alsagconfdir", [directory containing global ALSA add-on config files])
1896
+ +ALSA_GCONF_DIR="$alsagconfdir"
1897
+ +AC_SUBST(ALSA_GCONF_DIR)
1898
+ +
1899
+ +dnl ALSA add-on local config directory
1900
+ +AC_ARG_WITH(alsalconfdir,
1901
+ + AS_HELP_STRING([--with-alsalconfdir=dir],
1902
+ + [path where ALSA local add-on config files are stored]),
1903
+ + alsalconfdir="$withval", alsalconfdir="")
1904
+ +if test -z "$alsalconfdir"; then
1905
+ + alsalconfdir="/etc/alsa/conf.d"
1906
+ +fi
1907
+ +AC_DEFINE_UNQUOTED(ALSA_LCONF_DIR, "$alsalconfdir", [directory containing local ALSA add-on config files])
1908
+ +ALSA_LCONF_DIR="$alsalconfdir"
1909
+ +AC_SUBST(ALSA_LCONF_DIR)
1910
+
1911
+ SAVE_PLUGINS_VERSION
1912
+
1913
+ diff --git a/install-hooks.am b/install-hooks.am
1914
+ new file mode 100644
1915
+ index 0000000..2d6d383
1916
+ --- /dev/null
1917
+ +++ b/install-hooks.am
1918
+ @@ -0,0 +1,16 @@
1919
+ +install-conf-hook:
1920
+ + mkdir -p $(DESTDIR)$(ALSA_LCONF_DIR)
1921
+ + @(echo cd $(DESTDIR)$(ALSA_LCONF_DIR); \
1922
+ + cd $(DESTDIR)$(ALSA_LCONF_DIR); \
1923
+ + for i in $(GCONF_FILES); do \
1924
+ + echo $(RM) $$i";" ln -s $(ALSA_GCONF_DIR)/$$i .; \
1925
+ + $(RM) $$i; \
1926
+ + ln -s $(ALSA_GCONF_DIR)/$$i .; \
1927
+ + done)
1928
+ +uninstall-conf-hook:
1929
+ + @(echo cd $(DESTDIR)$(ALSA_LCONF_DIR); \
1930
+ + cd $(DESTDIR)$(ALSA_LCONF_DIR); \
1931
+ + for i in $(GCONF_FILES); do \
1932
+ + echo $(RM) $$i; \
1933
+ + $(RM) $$i; \
1934
+ + done)
1935
+ diff --git a/jack/Makefile.am b/jack/Makefile.am
1936
+ index 0a3d6ae..7801194 100644
1937
+ --- a/jack/Makefile.am
1938
+ +++ b/jack/Makefile.am
1939
+ @@ -1,13 +1,21 @@
1940
+ -EXTRA_DIST = 50-jack.conf
1941
+ +GCONF_FILES = 50-jack.conf
1942
+ +
1943
+ +EXTRA_DIST = $(GCONF_FILES)
1944
+
1945
+ asound_module_pcm_jack_LTLIBRARIES = libasound_module_pcm_jack.la
1946
+ -asound_module_addon_DATA = 50-jack.conf
1947
+ +asound_module_gconf_DATA = $(GCONF_FILES)
1948
+
1949
+ asound_module_pcm_jackdir = @ALSA_PLUGIN_DIR@
1950
+ -asound_module_addondir = @ALSA_ADDON_DIR@
1951
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
1952
+
1953
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @JACK_CFLAGS@
1954
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
1955
+
1956
+ libasound_module_pcm_jack_la_SOURCES = pcm_jack.c
1957
+ libasound_module_pcm_jack_la_LIBADD = @ALSA_LIBS@ @JACK_LIBS@
1958
+ +
1959
+ +include ../install-hooks.am
1960
+ +
1961
+ +install-data-hook: install-conf-hook
1962
+ +
1963
+ +uninstall-local: uninstall-conf-hook
1964
+ diff --git a/maemo/Makefile.am b/maemo/Makefile.am
1965
+ index aca481d..7749926 100644
1966
+ --- a/maemo/Makefile.am
1967
+ +++ b/maemo/Makefile.am
1968
+ @@ -1,12 +1,14 @@
1969
+ -EXTRA_DIST = 98-maemo.conf
1970
+ +GCONF_FILES = 98-maemo.conf
1971
+ +
1972
+ +EXTRA_DIST = $(GCONF_FILES)
1973
+
1974
+ asound_module_pcm_alsa_dsp_LTLIBRARIES = libasound_module_pcm_alsa_dsp.la
1975
+ asound_module_ctl_dsp_ctl_LTLIBRARIES = libasound_module_ctl_dsp_ctl.la
1976
+ -asound_module_addon_DATA = 98-maemo.conf
1977
+ +asound_module_gconf_DATA = $(GCONF_FILES)
1978
+
1979
+ asound_module_pcm_alsa_dspdir = @ALSA_PLUGIN_DIR@
1980
+ asound_module_ctl_dsp_ctldir = @ALSA_PLUGIN_DIR@
1981
+ -asound_module_addondir = @ALSA_ADDON_DIR@
1982
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
1983
+
1984
+ AM_CFLAGS = -Wall -O2 @ALSA_CFLAGS@ $(DBUS_CFLAGS)
1985
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
1986
+ @@ -19,3 +21,9 @@ libasound_module_ctl_dsp_ctl_la_LIBADD = @ALSA_LIBS@ $(DBUS_LIBS) -lpthread
1987
+
1988
+ noinst_HEADERS = constants.h debug.h dsp-protocol.h list.h reporting.h \
1989
+ types.h
1990
+ +
1991
+ +include ../install-hooks.am
1992
+ +
1993
+ +install-data-hook: install-conf-hook
1994
+ +
1995
+ +uninstall-local: uninstall-conf-hook
1996
+ diff --git a/mix/Makefile.am b/mix/Makefile.am
1997
+ index 710606c..a74c200 100644
1998
+ --- a/mix/Makefile.am
1999
+ +++ b/mix/Makefile.am
2000
+ @@ -1,12 +1,14 @@
2001
+ -EXTRA_DIST = 60-upmix.conf 60-vdownmix.conf
2002
+ +GCONF_FILES = 60-upmix.conf 60-vdownmix.conf
2003
+ +
2004
+ +EXTRA_DIST = $(GCONF_FILES)
2005
+
2006
+ asound_module_pcm_upmix_LTLIBRARIES = libasound_module_pcm_upmix.la
2007
+ asound_module_pcm_vdownmix_LTLIBRARIES = libasound_module_pcm_vdownmix.la
2008
+ -asound_module_addon_DATA = 60-upmix.conf 60-vdownmix.conf
2009
+ +asound_module_gconf_DATA = $(GCONF_FILES)
2010
+
2011
+ asound_module_pcm_upmixdir = @ALSA_PLUGIN_DIR@
2012
+ asound_module_pcm_vdownmixdir = @ALSA_PLUGIN_DIR@
2013
+ -asound_module_addondir = @ALSA_ADDON_DIR@
2014
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
2015
+
2016
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
2017
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
2018
+ @@ -15,3 +17,9 @@ libasound_module_pcm_upmix_la_SOURCES = pcm_upmix.c
2019
+ libasound_module_pcm_upmix_la_LIBADD = @ALSA_LIBS@
2020
+ libasound_module_pcm_vdownmix_la_SOURCES = pcm_vdownmix.c
2021
+ libasound_module_pcm_vdownmix_la_LIBADD = @ALSA_LIBS@
2022
+ +
2023
+ +include ../install-hooks.am
2024
+ +
2025
+ +install-data-hook: install-conf-hook
2026
+ +
2027
+ +uninstall-local: uninstall-conf-hook
2028
+ diff --git a/oss/Makefile.am b/oss/Makefile.am
2029
+ index df83d20..46dfcac 100644
2030
+ --- a/oss/Makefile.am
2031
+ +++ b/oss/Makefile.am
2032
+ @@ -1,12 +1,14 @@
2033
+ -EXTRA_DIST = 50-oss.conf
2034
+ +GCONF_FILEs = 50-oss.conf
2035
+ +
2036
+ +EXTRA_DIST = $(GCONF_FILES)
2037
+
2038
+ asound_module_pcm_oss_LTLIBRARIES = libasound_module_pcm_oss.la
2039
+ asound_module_ctl_oss_LTLIBRARIES = libasound_module_ctl_oss.la
2040
+ -asound_module_addon_DATA = 50-oss.conf
2041
+ +asound_module_gconf_DATA = $(GCONF_FILES)
2042
+
2043
+ asound_module_pcm_ossdir = @ALSA_PLUGIN_DIR@
2044
+ asound_module_ctl_ossdir = @ALSA_PLUGIN_DIR@
2045
+ -asound_module_addondir = @ALSA_ADDON_DIR@
2046
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
2047
+
2048
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
2049
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
2050
+ @@ -16,3 +18,9 @@ libasound_module_pcm_oss_la_LIBADD = @ALSA_LIBS@
2051
+
2052
+ libasound_module_ctl_oss_la_SOURCES = ctl_oss.c
2053
+ libasound_module_ctl_oss_la_LIBADD = @ALSA_LIBS@
2054
+ +
2055
+ +include ../install-hooks.am
2056
+ +
2057
+ +install-data-hook: install-conf-hook
2058
+ +
2059
+ +uninstall-local: uninstall-conf-hook
2060
+ diff --git a/pph/Makefile.am b/pph/Makefile.am
2061
+ index abb950b..6938b74 100644
2062
+ --- a/pph/Makefile.am
2063
+ +++ b/pph/Makefile.am
2064
+ @@ -1,10 +1,12 @@
2065
+ -EXTRA_DIST = 10-speexrate.conf
2066
+ +GCONF_FILES = 10-speexrate.conf
2067
+ +
2068
+ +EXTRA_DIST = $(GCONF_FILES)
2069
+
2070
+ asound_module_rate_speexrate_LTLIBRARIES = libasound_module_rate_speexrate.la
2071
+ -asound_module_addon_DATA = 10-speexrate.conf
2072
+ +asound_module_gconf_DATA = $(GCONF_FILES)
2073
+
2074
+ asound_module_rate_speexratedir = @ALSA_PLUGIN_DIR@
2075
+ -asound_module_addondir = @ALSA_ADDON_DIR@
2076
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
2077
+
2078
+ AM_CFLAGS = -DVAR_ARRAYS -Wall -g @ALSA_CFLAGS@
2079
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
2080
+ @@ -20,6 +22,10 @@ libasound_module_rate_speexrate_la_SOURCES += resample.c
2081
+ libasound_module_rate_speexrate_la_LIBADD += -lm
2082
+ endif
2083
+
2084
+ +noinst_HEADERS = speex_resampler.h arch.h fixed_generic.h
2085
+ +
2086
+ +include ../install-hooks.am
2087
+ +
2088
+ install-exec-hook:
2089
+ rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_*.so
2090
+ $(LN_S) libasound_module_rate_speexrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_best.so
2091
+ @@ -28,4 +34,6 @@ install-exec-hook:
2092
+ uninstall-hook:
2093
+ rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_speexrate_*.so
2094
+
2095
+ -noinst_HEADERS = speex_resampler.h arch.h fixed_generic.h
2096
+ +install-data-hook: install-conf-hook
2097
+ +
2098
+ +uninstall-local: uninstall-conf-hook
2099
+ diff --git a/pulse/Makefile.am b/pulse/Makefile.am
2100
+ index 835808c..c33e702 100644
2101
+ --- a/pulse/Makefile.am
2102
+ +++ b/pulse/Makefile.am
2103
+ @@ -1,14 +1,19 @@
2104
+ -EXTRA_DIST = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
2105
+ +GCONF_FILES = 50-pulseaudio.conf
2106
+ +LCONF_FILES = 99-pulseaudio-default.conf.example
2107
+ +
2108
+ +EXTRA_DIST = $(GCONF_FILES) $(LCONF_FILES)
2109
+
2110
+ asound_module_pcm_LTLIBRARIES = libasound_module_pcm_pulse.la
2111
+ asound_module_ctl_LTLIBRARIES = libasound_module_ctl_pulse.la
2112
+ asound_module_conf_LTLIBRARIES = libasound_module_conf_pulse.la
2113
+ -asound_module_addon_DATA = 50-pulseaudio.conf 99-pulseaudio-default.conf.example
2114
+ +asound_module_gconf_DATA = $(GCONF_FILES)
2115
+ +asound_module_lconf_DATA = $(LCONF_FILES)
2116
+
2117
+ asound_module_pcmdir = @ALSA_PLUGIN_DIR@
2118
+ asound_module_ctldir = @ALSA_PLUGIN_DIR@
2119
+ asound_module_confdir = @ALSA_PLUGIN_DIR@
2120
+ -asound_module_addondir = @ALSA_ADDON_DIR@
2121
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
2122
+ +asound_module_lconfdir = @ALSA_LCONF_DIR@
2123
+
2124
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(PTHREAD_CFLAGS) $(pulseaudio_CFLAGS) -D_GNU_SOURCE
2125
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
2126
+ @@ -21,3 +26,9 @@ libasound_module_ctl_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_
2127
+
2128
+ libasound_module_conf_pulse_la_SOURCES = conf_pulse.c
2129
+ libasound_module_conf_pulse_la_LIBADD = @ALSA_LIBS@ $(PTHREAD_LIBS) $(pulseaudio_LIBS)
2130
+ +
2131
+ +include ../install-hooks.am
2132
+ +
2133
+ +install-data-hook: install-conf-hook
2134
+ +
2135
+ +uninstall-local: uninstall-conf-hook
2136
+ diff --git a/rate-lav/Makefile.am b/rate-lav/Makefile.am
2137
+ index 0f6ecb6..eb672b5 100644
2138
+ --- a/rate-lav/Makefile.am
2139
+ +++ b/rate-lav/Makefile.am
2140
+ @@ -1,10 +1,12 @@
2141
+ -EXTRA_DIST = 10-rate-lav.conf
2142
+ +GCONF_FILES = 10-rate-lav.conf
2143
+ +
2144
+ +EXTRA_DIST = $(GCONF_FILES)
2145
+
2146
+ asound_module_rate_lavrate_LTLIBRARIES = libasound_module_rate_lavrate.la
2147
+ -asound_module_addon_DATA = 10-rate-lav.conf
2148
+ +asound_module_gconf_DATA = $(GCONF_FILES)
2149
+
2150
+ asound_module_rate_lavratedir = @ALSA_PLUGIN_DIR@
2151
+ -asound_module_addondir = @ALSA_ADDON_DIR@
2152
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
2153
+
2154
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @LIBAV_CFLAGS@
2155
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
2156
+ @@ -14,6 +16,8 @@ libasound_module_rate_lavrate_la_LIBADD = @ALSA_LIBS@ @LIBAV_LIBS@ @LIBAV_RESAMP
2157
+
2158
+ noinst_HEADERS = gcd.h
2159
+
2160
+ +include ../install-hooks.am
2161
+ +
2162
+ install-exec-hook:
2163
+ rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_*.so
2164
+ $(LN_S) libasound_module_rate_lavrate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_higher.so
2165
+ @@ -23,3 +27,6 @@ install-exec-hook:
2166
+
2167
+ uninstall-hook:
2168
+ rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_lavrate_*.so
2169
+ +install-data-hook: install-conf-hook
2170
+ +
2171
+ +uninstall-local: uninstall-conf-hook
2172
+ diff --git a/rate/Makefile.am b/rate/Makefile.am
2173
+ index 25014d8..488c12a 100644
2174
+ --- a/rate/Makefile.am
2175
+ +++ b/rate/Makefile.am
2176
+ @@ -1,10 +1,12 @@
2177
+ -EXTRA_DIST = 10-samplerate.conf
2178
+ +GCONF_FILES = 10-samplerate.conf
2179
+ +
2180
+ +EXTRA_DIST = $(GCONF_FILES)
2181
+
2182
+ asound_module_rate_samplerate_LTLIBRARIES = libasound_module_rate_samplerate.la
2183
+ -asound_module_addon_DATA = 10-samplerate.conf
2184
+ +asound_module_gconf_DATA = $(GCONF_FILES)
2185
+
2186
+ asound_module_rate_sampleratedir = @ALSA_PLUGIN_DIR@
2187
+ -asound_module_addondir = @ALSA_ADDON_DIR@
2188
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
2189
+
2190
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ $(samplerate_CFLAGS)
2191
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
2192
+ @@ -12,6 +14,8 @@ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUN
2193
+ libasound_module_rate_samplerate_la_SOURCES = rate_samplerate.c
2194
+ libasound_module_rate_samplerate_la_LIBADD = @ALSA_LIBS@ @samplerate_LIBS@
2195
+
2196
+ +include ../install-hooks.am
2197
+ +
2198
+ install-exec-hook:
2199
+ rm -f $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_*.so
2200
+ $(LN_S) libasound_module_rate_samplerate.so $(DESTDIR)@ALSA_PLUGIN_DIR@/libasound_module_rate_samplerate_best.so
2201
+ @@ -21,3 +25,7 @@ install-exec-hook:
2202
+
2203
+ uninstall-hook:
2204
+ rm -f $(DESTDIR)$(libdir)/alsa-lib/libasound_module_rate_samplerate_*.so
2205
+ +
2206
+ +install-data-hook: install-conf-hook
2207
+ +
2208
+ +uninstall-local: uninstall-conf-hook
2209
+ diff --git a/speex/Makefile.am b/speex/Makefile.am
2210
+ index 7891954..27c4ea5 100644
2211
+ --- a/speex/Makefile.am
2212
+ +++ b/speex/Makefile.am
2213
+ @@ -1,13 +1,21 @@
2214
+ -EXTRA_DIST = 60-speex.conf
2215
+ +GCONF_FILES = 60-speex.conf
2216
+ +
2217
+ +EXTRA_DIST = $(GCONF_FILES)
2218
+
2219
+ asound_module_pcm_speex_LTLIBRARIES = libasound_module_pcm_speex.la
2220
+ -asound_module_addon_DATA = 60-speex.conf
2221
+ +asound_module_gconf_DATA = $(GCONF_FILES)
2222
+
2223
+ asound_module_pcm_speexdir = @ALSA_PLUGIN_DIR@
2224
+ -asound_module_addondir = @ALSA_ADDON_DIR@
2225
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
2226
+
2227
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@ @speexdsp_CFLAGS@
2228
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined $(LDFLAGS_NOUNDEFINED)
2229
+
2230
+ libasound_module_pcm_speex_la_SOURCES = pcm_speex.c
2231
+ libasound_module_pcm_speex_la_LIBADD = @ALSA_LIBS@ @speexdsp_LIBS@
2232
+ +
2233
+ +include ../install-hooks.am
2234
+ +
2235
+ +install-data-hook: install-conf-hook
2236
+ +
2237
+ +uninstall-local: uninstall-conf-hook
2238
+ diff --git a/usb_stream/Makefile.am b/usb_stream/Makefile.am
2239
+ index b606d3d..203618b 100644
2240
+ --- a/usb_stream/Makefile.am
2241
+ +++ b/usb_stream/Makefile.am
2242
+ @@ -1,10 +1,12 @@
2243
+ -EXTRA_DIST = 98-usb-stream.conf
2244
+ +GCONF_FILES = 98-usb-stream.conf
2245
+ +
2246
+ +EXTRA_DIST = $(GCONF_FILES)
2247
+
2248
+ asound_module_pcm_usb_stream_LTLIBRARIES = libasound_module_pcm_usb_stream.la
2249
+ -asound_module_addon_DATA = 98-usb-stream.conf
2250
+ +asound_module_gconf_DATA = $(GCONF_FILES)
2251
+
2252
+ asound_module_pcm_usb_streamdir = @ALSA_PLUGIN_DIR@
2253
+ -asound_module_addondir = @ALSA_ADDON_DIR@
2254
+ +asound_module_gconfdir = @ALSA_GCONF_DIR@
2255
+
2256
+ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
2257
+ AM_LDFLAGS = -module -avoid-version -export-dynamic $(LDFLAGS_NOUNDEFINED)
2258
+ @@ -13,3 +15,9 @@ libasound_module_pcm_usb_stream_la_SOURCES = pcm_usb_stream.c
2259
+ libasound_module_pcm_usb_stream_la_LIBADD = @ALSA_LIBS@
2260
+
2261
+ noinst_HEADERS = usb_stream.h
2262
+ +
2263
+ +include ../install-hooks.am
2264
+ +
2265
+ +install-data-hook: install-conf-hook
2266
+ +
2267
+ +uninstall-local: uninstall-conf-hook
2268
+ --
2269
+ 2.13.6
2270
+
2271
+
2272
+ From beb24e58763e3b1d831fcd7ef87a478e6ac74fcc Mon Sep 17 00:00:00 2001
2273
+ From: Jaroslav Kysela <perex@perex.cz>
2274
+ Date: Mon, 16 Apr 2018 18:14:18 +0200
2275
+ Subject: [PATCH 6/8] oss/Makefile.am: fix typo
2276
+
2277
+ Signed-off-by: Jaroslav Kysela <perex@perex.cz>
2278
+ ---
2279
+ oss/Makefile.am | 2 +-
2280
+ 1 file changed, 1 insertion(+), 1 deletion(-)
2281
+
2282
+ diff --git a/oss/Makefile.am b/oss/Makefile.am
2283
+ index 46dfcac..bff4443 100644
2284
+ --- a/oss/Makefile.am
2285
+ +++ b/oss/Makefile.am
2286
+ @@ -1,4 +1,4 @@
2287
+ -GCONF_FILEs = 50-oss.conf
2288
+ +GCONF_FILES = 50-oss.conf
2289
+
2290
+ EXTRA_DIST = $(GCONF_FILES)
2291
+
2292
+ --
2293
+ 2.13.6
2294
+
2295
+
2296
+ From 992b7eb1f1fe95fe7b8b622042aa32c33fffd18d Mon Sep 17 00:00:00 2001
2297
+ From: Takashi Iwai <tiwai@suse.de>
2298
+ Date: Tue, 22 May 2018 14:13:53 +0200
2299
+ Subject: [PATCH 7/8] arcam-av: Add explicit -lpthread to *_LIBADD
2300
+
2301
+ The pthread library has to be linked for this module. In some tool
2302
+ chains, it results in a build error.
2303
+
2304
+ Signed-off-by: Takashi Iwai <tiwai@suse.de>
2305
+ ---
2306
+ arcam-av/Makefile.am | 2 +-
2307
+ 1 file changed, 1 insertion(+), 1 deletion(-)
2308
+
2309
+ diff --git a/arcam-av/Makefile.am b/arcam-av/Makefile.am
2310
+ index c16aec0..57d5542 100644
2311
+ --- a/arcam-av/Makefile.am
2312
+ +++ b/arcam-av/Makefile.am
2313
+ @@ -12,7 +12,7 @@ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
2314
+ AM_LDFLAGS = -module -avoid-version -export-dynamic -no-undefined
2315
+
2316
+ libasound_module_ctl_arcam_av_la_SOURCES = ctl_arcam_av.c arcam_av.c arcam_av.h
2317
+ -libasound_module_ctl_arcam_av_la_LIBADD = @ALSA_LIBS@
2318
+ +libasound_module_ctl_arcam_av_la_LIBADD = @ALSA_LIBS@ -lpthread
2319
+
2320
+ include ../install-hooks.am
2321
+
2322
+ --
2323
+ 2.13.6
2324
+
2325
+
2326
+ From 2d310f84e7af4c5b4bc68a6e45500e874df482f9 Mon Sep 17 00:00:00 2001
2327
+ From: Takashi Iwai <tiwai@suse.de>
2328
+ Date: Tue, 22 May 2018 14:15:21 +0200
2329
+ Subject: [PATCH 8/8] usb_stream: Add explicit -lpthread to *_LIBADD
2330
+
2331
+ The pthread library has to be linked for this module. In some tool
2332
+ chains, it results in a build error.
2333
+
2334
+ Signed-off-by: Takashi Iwai <tiwai@suse.de>
2335
+ ---
2336
+ usb_stream/Makefile.am | 2 +-
2337
+ 1 file changed, 1 insertion(+), 1 deletion(-)
2338
+
2339
+ diff --git a/usb_stream/Makefile.am b/usb_stream/Makefile.am
2340
+ index 203618b..fde2455 100644
2341
+ --- a/usb_stream/Makefile.am
2342
+ +++ b/usb_stream/Makefile.am
2343
+ @@ -12,7 +12,7 @@ AM_CFLAGS = -Wall -g @ALSA_CFLAGS@
2344
+ AM_LDFLAGS = -module -avoid-version -export-dynamic $(LDFLAGS_NOUNDEFINED)
2345
+
2346
+ libasound_module_pcm_usb_stream_la_SOURCES = pcm_usb_stream.c
2347
+ -libasound_module_pcm_usb_stream_la_LIBADD = @ALSA_LIBS@
2348
+ +libasound_module_pcm_usb_stream_la_LIBADD = @ALSA_LIBS@ -lpthread
2349
+
2350
+ noinst_HEADERS = usb_stream.h
2351
+
2352
+ --
2353
+ 2.13.6
2354
+
SOURCES/alsa-plugins-1.1.6-speexdsp.patch ADDED
@@ -0,0 +1,13 @@
1
+ diff --git a/configure.ac b/configure.ac
2
+ index f49bb6b..415b2aa 100644
3
+ --- a/configure.ac
4
+ +++ b/configure.ac
5
+ @@ -143,7 +143,7 @@ AC_ARG_ENABLE([speexdsp],
6
+ AS_HELP_STRING([--disable-speexdsp], [Disable building of speexdsp plugin]))
7
+
8
+ if test "x$enable_speexdsp" != "xno"; then
9
+ - PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2rc2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""])
10
+ + PKG_CHECK_MODULES(speexdsp, [speexdsp >= 1.2], [HAVE_SPEEXDSP="yes"], [HAVE_SPEEXDSP=""])
11
+ fi
12
+ AM_CONDITIONAL(HAVE_SPEEXDSP, test "$HAVE_SPEEXDSP" = "yes")
13
+
file modified
+61 -39
SPECS/alsa-plugins.spec CHANGED
@@ -5,7 +5,7 @@
5
5
%endif
6
6
7
7
Name: alsa-plugins
8
- Version: 1.1.1
8
+ Version: 1.1.6
9
9
Release: 1%{?dist}
10
10
Summary: The Advanced Linux Sound Architecture (ALSA) Plugins
11
11
# All packages are LGPLv2+ with the exception of samplerate which is GPLv2+
@@ -14,18 +14,11 @@ License: GPLv2+ and LGPLv2+ and BSD
14
14
Group: System Environment/Libraries
15
15
URL: http://www.alsa-project.org/
16
16
Source0: ftp://ftp.alsa-project.org/pub/plugins/%{name}-%{version}.tar.bz2
17
- %if 0%{?with_jack}
18
- Source1: 50-jack.conf
17
+ Patch0: alsa-plugins-1.1.6-post.patch
18
+ Patch1: alsa-plugins-1.1.6-speexdsp.patch
19
- %endif
20
- Source2: 50-pcm-oss.conf
21
- Source3: 10-speex.conf
22
- Source4: 10-samplerate.conf
23
- Source5: 50-upmix.conf
24
- Source6: 97-vdownmix.conf
25
- Source8: 50-arcamav.conf
26
- Source9: 98-maemo.conf
27
19
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
28
20
21
+ BuildRequires: autoconf automake libtool
29
22
BuildRequires: alsa-lib-devel
30
23
31
24
%description
@@ -146,8 +139,11 @@ ALSA native applications can run over DSP Gateway and use DSP PCM task nodes.
146
139
147
140
%prep
148
141
%setup -q -n %{name}-%{version}%{?prever}
142
+ %patch0 -p1 -b .post
143
+ %patch1 -p1 -b .speexdsp
149
144
150
145
%build
146
+ autoreconf -vif
151
147
%configure --disable-static \
152
148
--with-speex=lib \
153
149
--enable-maemo-plugin \
@@ -155,25 +151,13 @@ ALSA native applications can run over DSP Gateway and use DSP PCM task nodes.
155
151
make %{?_smp_mflags}
156
152
157
153
%install
158
- rm -rf $RPM_BUILD_ROOT
159
- make install DESTDIR=$RPM_BUILD_ROOT
154
+ rm -rf %{buildroot}
155
+ make install DESTDIR=%{buildroot}
160
156
161
- install -d ${RPM_BUILD_ROOT}%{_datadir}/alsa/alsa.conf.d
162
- %if 0%{?with_jack}
163
- install -m 644 %SOURCE1 ${RPM_BUILD_ROOT}%{_datadir}/alsa/alsa.conf.d
164
- %endif
157
+ mv %{buildroot}/etc/alsa/conf.d/99-pulseaudio-default.conf.example \
158
+ %{buildroot}/etc/alsa/conf.d/99-pulseaudio-default.conf
159
+
160
+ find %{buildroot} -name "*.la" -exec rm {} \;
165
- install -m 644 %SOURCE2 \
166
- %SOURCE3 \
167
- %SOURCE4 \
168
- %SOURCE5 \
169
- %SOURCE6 \
170
- %SOURCE8 \
171
- %SOURCE9 \
172
- ${RPM_BUILD_ROOT}%{_datadir}/alsa/alsa.conf.d
173
- mv ${RPM_BUILD_ROOT}%{_datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf.example \
174
- ${RPM_BUILD_ROOT}%{_datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf
175
-
176
- find $RPM_BUILD_ROOT -name "*.la" -exec rm {} \;
177
161
178
162
%clean
179
163
rm -rf $RPM_BUILD_ROOT
@@ -186,34 +170,46 @@ rm -rf $RPM_BUILD_ROOT
186
170
%files jack
187
171
%defattr(-,root,root,-)
188
172
%doc COPYING COPYING.GPL doc/README-jack
173
+ %dir /etc/alsa/conf.d
174
+ %config(noreplace) /etc/alsa/conf.d/50-jack.conf
189
175
%dir %{_datadir}/alsa/alsa.conf.d
190
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/50-jack.conf
176
+ %{_datadir}/alsa/alsa.conf.d/50-jack.conf
177
+ %dir %{_libdir}/alsa-lib
191
178
%{_libdir}/alsa-lib/libasound_module_pcm_jack.so
192
179
%endif
193
180
194
181
%files oss
195
182
%defattr(-,root,root,-)
196
183
%doc COPYING COPYING.GPL doc/README-pcm-oss
184
+ %dir /etc/alsa/conf.d
185
+ %config(noreplace) /etc/alsa/conf.d/50-oss.conf
197
186
%dir %{_datadir}/alsa/alsa.conf.d
198
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/50-pcm-oss.conf
187
+ %{_datadir}/alsa/alsa.conf.d/50-oss.conf
188
+ %dir %{_libdir}/alsa-lib
199
189
%{_libdir}/alsa-lib/libasound_module_ctl_oss.so
200
190
%{_libdir}/alsa-lib/libasound_module_pcm_oss.so
201
191
202
192
%files pulseaudio
203
193
%defattr(-,root,root,-)
204
194
%doc COPYING COPYING.GPL doc/README-pulse
195
+ %dir %{_libdir}/alsa-lib
205
196
%{_libdir}/alsa-lib/libasound_module_pcm_pulse.so
206
197
%{_libdir}/alsa-lib/libasound_module_ctl_pulse.so
207
198
%{_libdir}/alsa-lib/libasound_module_conf_pulse.so
199
+ %dir /etc/alsa/conf.d
200
+ %config(noreplace) /etc/alsa/conf.d/50-pulseaudio.conf
201
+ %config(noreplace) /etc/alsa/conf.d/99-pulseaudio-default.conf
208
202
%dir %{_datadir}/alsa/alsa.conf.d
209
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/50-pulseaudio.conf
203
+ %{_datadir}/alsa/alsa.conf.d/50-pulseaudio.conf
210
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/99-pulseaudio-default.conf
211
204
212
205
%files samplerate
213
206
%defattr(-,root,root,-)
214
207
%doc COPYING COPYING.GPL doc/samplerate.txt
208
+ %dir /etc/alsa/conf.d
209
+ %config(noreplace) /etc/alsa/conf.d/10-samplerate.conf
215
210
%dir %{_datadir}/alsa/alsa.conf.d
216
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/10-samplerate.conf
211
+ %{_datadir}/alsa/alsa.conf.d/10-samplerate.conf
212
+ %dir %{_libdir}/alsa-lib
217
213
%{_libdir}/alsa-lib/libasound_module_rate_samplerate.so
218
214
%{_libdir}/alsa-lib/libasound_module_rate_samplerate_best.so
219
215
%{_libdir}/alsa-lib/libasound_module_rate_samplerate_linear.so
@@ -223,34 +219,53 @@ rm -rf $RPM_BUILD_ROOT
223
219
%files upmix
224
220
%defattr(-,root,root,-)
225
221
%doc COPYING COPYING.GPL doc/upmix.txt
222
+ %dir /etc/alsa/conf.d
223
+ %config(noreplace) /etc/alsa/conf.d/60-upmix.conf
226
224
%dir %{_datadir}/alsa/alsa.conf.d
227
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/50-upmix.conf
225
+ %{_datadir}/alsa/alsa.conf.d/60-upmix.conf
226
+ %dir %{_libdir}/alsa-lib
228
227
%{_libdir}/alsa-lib/libasound_module_pcm_upmix.so
229
228
230
229
%files vdownmix
231
230
%defattr(-,root,root,-)
232
231
%doc COPYING COPYING.GPL doc/vdownmix.txt
232
+ %dir /etc/alsa/conf.d
233
+ %config(noreplace) /etc/alsa/conf.d/60-vdownmix.conf
233
234
%dir %{_datadir}/alsa/alsa.conf.d
234
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/97-vdownmix.conf
235
+ %{_datadir}/alsa/alsa.conf.d/60-vdownmix.conf
236
+ %dir %{_libdir}/alsa-lib
235
237
%{_libdir}/alsa-lib/libasound_module_pcm_vdownmix.so
236
238
237
239
%files usbstream
238
240
%defattr(-,root,root,-)
239
241
%doc COPYING COPYING.GPL
242
+ %dir /etc/alsa/conf.d
243
+ %config(noreplace) /etc/alsa/conf.d/98-usb-stream.conf
244
+ %dir %{_datadir}/alsa/alsa.conf.d
245
+ %{_datadir}/alsa/alsa.conf.d/98-usb-stream.conf
246
+ %dir %{_libdir}/alsa-lib
240
247
%{_libdir}/alsa-lib/libasound_module_pcm_usb_stream.so
241
248
242
249
%files arcamav
243
250
%defattr(-,root,root,-)
244
251
%doc COPYING COPYING.GPL doc/README-arcam-av
252
+ %dir /etc/alsa/conf.d
253
+ %config(noreplace) /etc/alsa/conf.d/50-arcam-av-ctl.conf
245
254
%dir %{_datadir}/alsa/alsa.conf.d
246
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/50-arcamav.conf
255
+ %{_datadir}/alsa/alsa.conf.d/50-arcam-av-ctl.conf
256
+ %dir %{_libdir}/alsa-lib
247
257
%{_libdir}/alsa-lib/libasound_module_ctl_arcam_av.so
248
258
249
259
%files speex
250
260
%defattr(-,root,root,-)
251
261
%doc COPYING COPYING.GPL doc/speexdsp.txt doc/speexrate.txt
262
+ %dir /etc/alsa/conf.d
263
+ %config(noreplace) /etc/alsa/conf.d/10-speexrate.conf
264
+ %config(noreplace) /etc/alsa/conf.d/60-speex.conf
252
265
%dir %{_datadir}/alsa/alsa.conf.d
253
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/10-speex.conf
266
+ %{_datadir}/alsa/alsa.conf.d/10-speexrate.conf
267
+ %{_datadir}/alsa/alsa.conf.d/60-speex.conf
268
+ %dir %{_libdir}/alsa-lib
254
269
%{_libdir}/alsa-lib/libasound_module_pcm_speex.so
255
270
%{_libdir}/alsa-lib/libasound_module_rate_speexrate.so
256
271
%{_libdir}/alsa-lib/libasound_module_rate_speexrate_best.so
@@ -259,13 +274,20 @@ rm -rf $RPM_BUILD_ROOT
259
274
%files maemo
260
275
%defattr(-,root,root,-)
261
276
%doc COPYING COPYING.GPL doc/README-maemo
277
+ %dir /etc/alsa/conf.d
278
+ %config(noreplace) /etc/alsa/conf.d/98-maemo.conf
262
279
%dir %{_datadir}/alsa/alsa.conf.d
263
- %config(noreplace) %{_datadir}/alsa/alsa.conf.d/98-maemo.conf
280
+ %{_datadir}/alsa/alsa.conf.d/98-maemo.conf
281
+ %dir %{_libdir}/alsa-lib
264
282
%{_libdir}/alsa-lib/libasound_module_ctl_dsp_ctl.so
265
283
%{_libdir}/alsa-lib/libasound_module_pcm_alsa_dsp.so
266
284
267
285
268
286
%changelog
287
+ * Tue May 29 2018 Jaroslav Kysela <jkysela@redhat.com> - 1.1.6-1
288
+ - Updated to 1.1.6
289
+ - Resolves: rhbz#1578691
290
+
269
291
* Mon Jun 6 2016 Jaroslav Kysela <jkysela@redhat.com> - 1.1.1-1
270
292
- Updated to 1.1.1
271
293
- Resolves: rhbz#1112209