Dne 26. 03. 20 v 18:44 Jaroslav Kysela napsal(a): > Dne 26. 03. 20 v 18:19 Pavel Hofman napsal(a): >> Hi, >> >> Please how is the module params pcm_notify supposed to be used, to do >> what the documentation says: Break capture when PCM format/rate/channels >> changes? >> >> Breaking capture side operation when the playback side changes the >> params is very useful, but I cannot find a way to use this param >> properly. When the capture side is open, the playback side cannot use a >> different parameter than the one currently used by the capture side (the >> configuration space is limited) > > Really? Then it's a bug introduced by the last changes. > > If you look to sources: > > if (get_notify(dpcm)) > runtime->hw = loopback_pcm_hardware; > else > runtime->hw = cable->hw; > > And: > > if (!(cable->valid & ~(1 << substream->stream)) || > (get_setup(dpcm)->notify && > substream->stream == SNDRV_PCM_STREAM_PLAYBACK)) > params_change(substream); > > So the functionality should be there. I am using older kernels (4.15 and 3.16), but this is an old functionality. modprobe snd-aloop pcm_substreams=1 pcm_notify=1,1 Playback with no capture aplay -v --dump-hw-params -D hw:0,0 -r 48000 -c 2 -f S32_LE /dev/zero Přehrávám syrová data '/dev/zero' : Signed 32 bit Little Endian, Frekvence 48000 Hz, Stereo HW Params of device "hw:0,0": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S16_LE S16_BE S32_LE S32_BE FLOAT_LE FLOAT_BE SUBFORMAT: STD SAMPLE_BITS: [16 32] FRAME_BITS: [16 1024] CHANNELS: [1 32] RATE: [8000 19200000] PERIOD_TIME: (0 65536000] PERIOD_SIZE: [1 524288] PERIOD_BYTES: [64 1048576] PERIODS: [1 1024] BUFFER_TIME: (0 524288000] BUFFER_SIZE: [1 4194304] BUFFER_BYTES: [64 8388608] Playback with capture running (arecord at 48000): aplay -v --dump-hw-params -D hw:0,0 -r 96000 -c 2 -f S32_LE /dev/zero Playing raw data '/dev/zero' : Signed 32 bit Little Endian, Rate 96000 Hz, Stereo HW Params of device "hw:0,0": -------------------- ACCESS: MMAP_INTERLEAVED RW_INTERLEAVED FORMAT: S32_LE SUBFORMAT: STD SAMPLE_BITS: 32 FRAME_BITS: 64 CHANNELS: 2 RATE: 48000 PERIOD_TIME: (166 2730667) PERIOD_SIZE: [8 131072] PERIOD_BYTES: [64 1048576] PERIODS: [1 1024] BUFFER_TIME: (166 21845334) BUFFER_SIZE: [8 1048576] BUFFER_BYTES: [64 8388608] TICK_TIME: ALL -------------------- Warning: rate is not accurate (requested = 96000Hz, got = 48000Hz) please, try the plug plugin Thanks a lot. Pavel.