[pulseaudio-discuss] - wrap around when recording output.monitor

Mads Kiilerich mads at kiilerich.com
Wed Sep 15 18:28:10 PDT 2010


  Baek Chang wrote, On 09/16/2010 02:26 AM:
> looks like in the remap_channels method, calling oil_vectoradd_s16, 
> the constant to multiply by is set to 1.
>
>                     if (r->map_table[oc][ic] >= 1.0) {
>                         static const int16_t one = 1;
>
>                         oil_vectoradd_s16(
>                                 (int16_t*) dst + oc, o_skip,
>                                 (int16_t*) dst + oc, o_skip,
>                                 (int16_t*) src + ic, i_skip,
>                                 (int) n_frames,
> &one, &one);
>
>                     }
>
> shouldn't there be a divide by 2 somewhere if we are adding two 
> channels together?
>
>
> On Wed, Sep 15, 2010 at 2:54 PM, Baek Chang 
> <baeksan at ccrma.stanford.edu <mailto:baeksan at ccrma.stanford.edu>> wrote:
>
>     I am seeing warp around happening due to overflow when doing the
>     following.
>
>     parec -r
>     --device=alsa_output.pci_8086_269a_sound_card_0_alsa_playback_0.monitor
>     output.raw --format=s16le --rate=44100 --channels=1
>     paplay --format=s16le --rate=44100 --channels=2
>
>
>     if i use parec with the same configuration as the sink that I am
>     playing the wave file on, then there is no overflow/wraparound.  It
>     seems to be a problem with the remapping of the channels from stereo
>     to mono.  Is there an additional gain stage applied in this remapping
>     that might be causing this?
>
>     I am using pulseaudio 0.9.14
>

Note that the latest version is 0.9.21 and that the code you are 
referring to seems to have been completely rewritten.

/Mads



More information about the pulseaudio-discuss mailing list