9front - general discussion about 9front
 help / color / mirror / Atom feed
* minor bug report: png spews
@ 2020-08-21 17:31 Ethan Gardener
  2020-08-21 18:42 ` [9front] " Ethan Gardener
  0 siblings, 1 reply; 6+ messages in thread
From: Ethan Gardener @ 2020-08-21 17:31 UTC (permalink / raw)
  To: 9front

png makes a nuisance of itself by writing confusing near-useless non-error data to stderr in a very un-unixlike manner. it can be a nuisance in a pipeline. jpg behaves correctly. 

term% png -9 img/timmy-arch-2017-03-12.png		| awk '/^compressed$/ {next}; {print $4-$2, $5-$3; exit}'
png: writing 3888000 bytes for len 1296000 chan m8
1440 900
term% jpg -9 img/Carina_Peach_4553.jpg			| awk '/^compressed$/ {next}; {print $4-$2, $5-$3; exit}'
4553 5004


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [9front] minor bug report: png spews
  2020-08-21 17:31 minor bug report: png spews Ethan Gardener
@ 2020-08-21 18:42 ` Ethan Gardener
  2020-08-21 18:47   ` ori
  0 siblings, 1 reply; 6+ messages in thread
From: Ethan Gardener @ 2020-08-21 18:42 UTC (permalink / raw)
  To: 9front

looks like it's just a forgotten debug print because it only occurs with -9. oddly, there are rather a lot of lines computing just for that message. 

here's a patch, tested minimally. let me know if you want a different format; this is diff -c.

png.c.0:132,138 - png.c:132,137
  	Rawimage **array, *r, *c;
  	Image *i, *i2;
  	int j, ch, outchan;
- 	long len;
  	Biobuf b;
  	char buf[32];
  	static int inited;
png.c.0:207,230 - png.c:206,211
  	}
  	if(nineflag){
  		chantostr(buf, outchan);
- 		len = (c->r.max.x - c->r.min.x) * (c->r.max.y - c->r.min.y);
- 		switch(c->chandesc){
- 		case CY:
- 			// len *= 1;
- 			break;
- 		case CYA16:
- 			len *= 2;
- 			break;
- 		case CRGB24:
- 			len *= 3;
- 			break;
- 		case CRGBA32:
- 			len *= 4;
- 			break;
- 		}
- 		if(c->chanlen != len)
- 			fprint(2, "%s: writing %d bytes for len %ld chan %s\n",
- 				argv0, c->chanlen, len, buf);
  		print("%11s %11d %11d %11d %11d ", buf,
  			c->r.min.x, c->r.min.y, c->r.max.x, c->r.max.y);
  		if(write(1, c->chans[0], c->chanlen) != c->chanlen){


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [9front] minor bug report: png spews
  2020-08-21 18:42 ` [9front] " Ethan Gardener
@ 2020-08-21 18:47   ` ori
  2020-08-21 19:25     ` Ethan Gardener
  0 siblings, 1 reply; 6+ messages in thread
From: ori @ 2020-08-21 18:47 UTC (permalink / raw)
  To: 9front

> looks like it's just a forgotten debug print because it only occurs with -9. oddly, there are rather a lot of lines computing just for that message. 
> 
> here's a patch, tested minimally. let me know if you want a different format; this is diff -c.
> 
> png.c.0:132,138 - png.c:132,137
>   	Rawimage **array, *r, *c;
>   	Image *i, *i2;
>   	int j, ch, outchan;
> - 	long len;
>   	Biobuf b;
>   	char buf[32];
>   	static int inited;
> png.c.0:207,230 - png.c:206,211
>   	}
>   	if(nineflag){
>   		chantostr(buf, outchan);
> - 		len = (c->r.max.x - c->r.min.x) * (c->r.max.y - c->r.min.y);
> - 		switch(c->chandesc){
> - 		case CY:
> - 			// len *= 1;
> - 			break;
> - 		case CYA16:
> - 			len *= 2;
> - 			break;
> - 		case CRGB24:
> - 			len *= 3;
> - 			break;
> - 		case CRGBA32:
> - 			len *= 4;
> - 			break;
> - 		}
> - 		if(c->chanlen != len)
> - 			fprint(2, "%s: writing %d bytes for len %ld chan %s\n",
> - 				argv0, c->chanlen, len, buf);
>   		print("%11s %11d %11d %11d %11d ", buf,
>   			c->r.min.x, c->r.min.y, c->r.max.x, c->r.max.y);
>   		if(write(1, c->chans[0], c->chanlen) != c->chanlen){

Hm. Does this happen on all PNG images?
If not, do you have an example image that triggers it?

I haven't tested yet, but it looks like it's warning about
a possible miscomputation of image size.



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [9front] minor bug report: png spews
  2020-08-21 18:47   ` ori
@ 2020-08-21 19:25     ` Ethan Gardener
  2020-08-21 19:26       ` Ethan Gardener
  0 siblings, 1 reply; 6+ messages in thread
From: Ethan Gardener @ 2020-08-21 19:25 UTC (permalink / raw)
  To: 9front

On Fri, Aug 21, 2020, at 7:47 PM, ori@eigenstate.org wrote:
> 
> Hm. Does this happen on all PNG images?
> If not, do you have an example image that triggers it?

good question. it happens on all 3 png images i have on my 9front box. not a large sample, i know. at least 2 of them were produced by topng.

here's 2 on the web:

hget http://spazient.thecomicseries.com/images/comics/190/44807a1588321366b69316f455407560.png | png -9 > /dev/null
hget http://spazient.thecomicseries.com/images/comics/190/44807a1587857865b69316f137336022.png | png -9 > /dev/null

so it's still every image i've tried. 

> I haven't tested yet, but it looks like it's warning about
> a possible miscomputation of image size.

then why can't it happen for any case other than nineflag (-9), and why can't it happen with jpg's nineflag? i honestly think the calculation of len is just wrong, and if it were correct we'd never see the message.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [9front] minor bug report: png spews
  2020-08-21 19:25     ` Ethan Gardener
@ 2020-08-21 19:26       ` Ethan Gardener
  2020-08-22  1:52         ` Alex Musolino
  0 siblings, 1 reply; 6+ messages in thread
From: Ethan Gardener @ 2020-08-21 19:26 UTC (permalink / raw)
  To: 9front

On Fri, Aug 21, 2020, at 8:25 PM, Ethan Gardener wrote:
> i honestly think the calculation 
> of len is just wrong, 

or that comparing len with c->chanlen is just spurious.


^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [9front] minor bug report: png spews
  2020-08-21 19:26       ` Ethan Gardener
@ 2020-08-22  1:52         ` Alex Musolino
  0 siblings, 0 replies; 6+ messages in thread
From: Alex Musolino @ 2020-08-22  1:52 UTC (permalink / raw)
  To: 9front

The value of c->chandesc for the images you linked to is actually CRGBV
which doesn't appear in the switch statement.  So, I'd say your patch
is fine.


^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-08-22  1:52 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-21 17:31 minor bug report: png spews Ethan Gardener
2020-08-21 18:42 ` [9front] " Ethan Gardener
2020-08-21 18:47   ` ori
2020-08-21 19:25     ` Ethan Gardener
2020-08-21 19:26       ` Ethan Gardener
2020-08-22  1:52         ` Alex Musolino

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).