arecord is failing with -V stereo
sujith kumar reddy
sujithreddy6192 at gmail.com
Mon Aug 23 18:31:44 CEST 2021
Hi Folkert,
In all version it is crashing.
when i debug these i found that p value is coming negative at memset.
the function snippet is:
in aplay.c file in alsa-utils.
in the below function for c=0 it is working when c incremented to 1 the p
value is becoming negative . so memset is crashing.
static void print_vu_meter_stereo(int *perc, int *maxperc)
{
const int bar_length = 35;
char line[80];
int c;
memset(line, ' ', sizeof(line) - 1);
line[bar_length + 3] = '|';
for (c = 0; c < 2; c++) {
int p = perc[c] * bar_length / 100;
char tmp[4];
if (p > bar_length)
p = bar_length;
if (c)
memset(line + bar_length + 6 + 1, '#', p);
----------------//this is the line where it is crashing.here p value is
becoming negative at c=1.As we see if we change the p value to bar_length
it works fine ..As it is a player issue not a driver issue.
else
memset(line + bar_length - p - 1, '#', p);
p = maxperc[c] * bar_length / 100;
if (p > bar_length)
p = bar_length;
if (c)
line[bar_length + 6 + 1 + p] = '+';
else
line[bar_length - p - 1] = '+';
if (maxperc[c] > 99)
sprintf(tmp, "MAX");
else
sprintf(tmp, "%02d%%", maxperc[c]);
if (c)
memcpy(line + bar_length + 3 + 1, tmp, 3);
else
memcpy(line + bar_length, tmp, 3);
}
line[bar_length * 2 + 6 + 2] = 0;
fputs(line, stderr);
}
Could you please help on this.As the driver data is fine when we keep p
value to bar length and checked .
.
Thanks
Sujith
On Fri, Aug 20, 2021 at 12:36 AM folkert <folkert at vanheusden.com> wrote:
> > > > arecord is failing vumeter option -V stereo only.
> > >
> > > What version?
> > > Because the commandline you provide works fine here with
> 1.2.4-1ubuntu3.
> >
> > 1.2.1.2
>
> See what happens if you upgrade to 1.2.4.
>
More information about the Alsa-devel
mailing list