Hi folkert, Are you going to submit the fix . Thanks Sujith On Tue, Aug 24, 2021 at 6:45 AM sujith kumar reddy < sujithreddy6192@xxxxxxxxx> wrote: > Ok thank you folkert . > > > > On Tue, 24 Aug, 2021, 1:46 AM folkert, <folkert@xxxxxxxxxxxxxx> wrote: > >> p=0 is more correct I think >> >> this is application only >> >> On Tue, Aug 24, 2021 at 01:03:27AM +0530, sujith kumar reddy wrote: >> > Hi folkert, >> > >> > The above you suggested p=0 is working . >> > i tried like >> > if (p > bar_length || p < 0) >> > p = bar_length; >> > This is also working. >> > >> > Which is the perfect one we can use? >> > Is there any impact of p with driver data or this is just a >> > application calculated value. >> > >> > Thanks >> > Sujith >> > >> > >> > On Tue, Aug 24, 2021 at 12:39 AM folkert <folkert@xxxxxxxxxxxxxx> >> wrote: >> > >> > > :-) >> > > >> > > If this also doesn't work, then I give up. >> > > >> > > diff --git a/aplay/aplay.c b/aplay/aplay.c >> > > index cc51dcb..03a4f73 100644 >> > > --- a/aplay/aplay.c >> > > +++ b/aplay/aplay.c >> > > @@ -1753,8 +1753,10 @@ static void print_vu_meter_stereo(int *perc, >> int >> > > *maxperc) >> > > for (c = 0; c < 2; c++) { >> > > int p = perc[c] * bar_length / 100; >> > > char tmp[4]; >> > > - if (p > bar_length) >> > > - p = bar_length; >> > > + if (p >= bar_length) >> > > + p = bar_length - 1; >> > > + if (p < 0) >> > > + p = 0; >> > > if (c) >> > > memset(line + bar_length + 6 + 1, '#', p); >> > > else >> > > >> > > On Tue, Aug 24, 2021 at 12:36:05AM +0530, sujith kumar reddy wrote: >> > > > Hi Folkert, >> > > > >> > > > Tried with the above code.This is also getting p value negative. >> > > > >> > > > My point is p is negative it doesn't go to >> > > > >> > > > if (p >= bar_length) >> > > > p = bar_length - 1; >> > > > it is going to memset second argument p,that is negative so >> crashing. >> > > > >> > > > >> > > > logs: >> > > > localhost ~ # ./sujith/arecord -D hw:1,2 -f S32_LE -r 48000 -c 2 >> 1.wav >> > > -V s >> > > > Sujith entry: main >> > > > Recording WAVE '1.wav' : Signed 32 bit Little Endian, Rate 48000 Hz, >> > > Stereo >> > > > >> > > > print_vu_meter_stereo sujith 35 ////////////////////////// c=0 >> case >> > > > print_vu_meter_stereo sujith* -9227433* /////////////////////c=1 >> case p >> > > > value negative which is going to memset second argument. >> > > > >> > > > Thanks >> > > > Sujith >> > > > >> > > > >> > > > >> > > > On Tue, Aug 24, 2021 at 12:17 AM folkert <folkert@xxxxxxxxxxxxxx> >> wrote: >> > > > >> > > > > Ah same bug. >> > > > > Please try this. >> > > > > The idea is that in both cases the extra '-1' breaks it. >> > > > > >> > > > > diff --git a/aplay/aplay.c b/aplay/aplay.c >> > > > > index cc51dcb..47db7e7 100644 >> > > > > --- a/aplay/aplay.c >> > > > > +++ b/aplay/aplay.c >> > > > > @@ -1753,8 +1753,8 @@ static void print_vu_meter_stereo(int >> *perc, int >> > > > > *maxperc) >> > > > > for (c = 0; c < 2; c++) { >> > > > > int p = perc[c] * bar_length / 100; >> > > > > char tmp[4]; >> > > > > - if (p > bar_length) >> > > > > - p = bar_length; >> > > > > + if (p >= bar_length) >> > > > > + p = bar_length - 1; >> > > > > if (c) >> > > > > memset(line + bar_length + 6 + 1, '#', p); >> > > > > else >> > > > > >> > > > > >> > > > > On Tue, Aug 24, 2021 at 12:14:00AM +0530, sujith kumar reddy >> wrote: >> > > > > > Tried with the above code.This is also getting p value negative. >> > > > > > >> > > > > > snippet code: >> > > > > > >> > > > > > fprintf(stderr, _(" %s sujith %d \n"), __func__,p); >> > > > > > if (p > bar_length) >> > > > > > p = bar_length; >> > > > > > if (c) >> > > > > > memset(line + bar_length + 6 + 1, '#', >> p); >> > > > > > else >> > > > > > memset(line + bar_length - p - 1, '#', >> p); >> > > > > > >> > > > > > >> > > > > > logs.... >> > > > > > // c=0 case >> > > > > > >> > > > > > print_vu_meter_stereo sujith 35 ///value of p is 35 >> > > > > > c =1 case >> > > > > > >> > > > > > print_vu_meter_stereo sujith -9227433 ///value is negative// >> > > > > > >> > > > > > On Mon, Aug 23, 2021 at 10:33 PM folkert < >> folkert@xxxxxxxxxxxxxx> >> > > wrote: >> > > > > > >> > > > > > > > const int bar_length = 35; >> > > > > > > > char line[80]; >> > > > > > > ... >> > > > > > > > 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. >> > > > > > > >> > > > > > > This is puzzling. >> > > > > > > bar_length + 6 + 1 + p and thus 35 + 6 + 1 + 35 is max 77, >> that >> > > fits >> > > > > > > easlity in 80. >> > > > > > > >> > > > > > > But wait: >> > > > > > > >> > > > > > > line[bar_length - p - 1] = '+'; >> > > > > > > >> > > > > > > p is max bar_length, so we would end up putting '+' in >> line[-1] >> > > > > > > >> > > > > > > Can you try this? >> > > > > > > >> > > > > > > >> > > > > > > diff --git a/aplay/aplay.c b/aplay/aplay.c >> > > > > > > index cc51dcb..9cfd52c 100644 >> > > > > > > --- a/aplay/aplay.c >> > > > > > > +++ b/aplay/aplay.c >> > > > > > > @@ -1764,7 +1764,7 @@ static void print_vu_meter_stereo(int >> *perc, >> > > int >> > > > > > > *maxperc) >> > > > > > > p = bar_length; >> > > > > > > if (c) >> > > > > > > line[bar_length + 6 + 1 + p] = '+'; >> > > > > > > - else >> > > > > > > + else if (p < bar_length) >> > > > > > > line[bar_length - p - 1] = '+'; >> > > > > > > if (ABS(maxperc[c]) > 99) >> > > > > > > sprintf(tmp, "MAX"); >> > > > > > > >> > > > > >> > > >> > > >> > > Folkert van Heusden >> > > >> > > -- >> > > Multitail es una herramienta flexible que permite visualizar los "log >> > > file" y seguir la ejecución de comandos. Permite filtrar, añadir >> > > colores, combinar archivos, la visualización de diferencias (diff- >> > > view), etc. http://www.vanheusden.com/multitail/ >> > > ---------------------------------------------------------------------- >> > > Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com >> > > >> >> >> Folkert van Heusden >> >> -- >> Multitail es una herramienta flexible que permite visualizar los "log >> file" y seguir la ejecución de comandos. Permite filtrar, añadir >> colores, combinar archivos, la visualización de diferencias (diff- >> view), etc. http://www.vanheusden.com/multitail/ >> ---------------------------------------------------------------------- >> Phone: +31-6-41278122, PGP-key: 1F28D8AE, www.vanheusden.com >> >