IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/10/14)2013/10/15 
mvrhel_laptop marosw: you there?00:27.27 
  marcosw00:27.33 
  bug 694707 is fixed now. but I did not know how you wanted to handle it. also it would be good to add that file to the regression testing00:28.12 
  the fix resulted in no changes in the cluster push00:28.30 
  it occurs only in an odd case with various isolated / non-isolated transparency groups00:28.54 
  now back to mupdf again00:29.12 
  henrys: so the meeting is at 7:30 PDT tomorrow?00:29.23 
  until 8:1500:29.28 
henrys mvrhel_laptop: yes00:29.51 
  did you read the logs about lcms?00:30.03 
mvrhel_laptop henrys: yes. I made a comment above about it00:33.08 
henrys then I should read the logs ;-)00:33.22 
mvrhel_laptop :)00:33.59 
  done for the night I think. I need to get over this cold00:34.18 
kens Robin_Watts: , paulgardiner, tor(n), can one of you reply to this please ?07:12.17 
  http://stackoverflow.com/questions/19372802/how-can-change-color-drawing-of-mupdf07:12.18 
kens remembers Paul is away07:12.40 
sebras-work kens: tor(n)..! you echo my thoughts. :)07:13.16 
kens Hmmm. chrisl, what's our position re GPL when using a DLL ? Is that 'linking' ?07:15.24 
  ie does it invoke the viral nature of the GPL ?07:15.41 
chrisl kens: I believe it does, yes.07:17.38 
kens chrisl, its OK I followed the SO thread and it looks like its not relevant, sorry.07:17.59 
chrisl NP07:18.31 
kens Sybase PowerBuilder not only uses GS to create PDF files, it only works with 8.71 apparently....07:19.00 
chrisl Yeh, I think I knew that - IIRC, I found a topic on their forum to that effect a while back07:19.43 
kens I actually commented on it at the time, but I'd forgotten about it07:20.03 
chrisl But I thought they exec'ed the executable, rather than link to the DLL.....07:20.36 
kens Yes, exactly. There was a new post with the same problem, but wttering about the DLL which had me chasing my tail for a moment07:21.14 
chrisl It might be worth pinging Miles, although I'm sure he'll have made contact before07:22.21 
Micha` tor7: Good morning! Say, is it you who introduced commit 3c559928 (Set /Parent entry when inserting a page into the page tree)?08:51.48 
sebras-work Micha`: tor7 is indeed the committer. why are you asking..?08:57.01 
Micha` Because I can't make it to work :-) It seems that it always creates cycles in the page tree. In fact, in pdf-page.c:573, shouldn't "pdf_dict_puts(page->me, "Parent", page_ref)" read "..., parent)" ?09:01.56 
  --- note it *does* work with this change, but it may not be the intended behavior.09:02.25 
sebras-work Micha`: I'm reviewing tor7's patch and it looks alright to me. I thik page_ref is correct. he means to set a /Parent entry in the page dict which is added as far as I understand.09:16.38 
tor7 Micha`: yes. let me take a look.09:17.06 
sebras-work ah.. no. I take that back.09:17.18 
  page->me is the current page of course.09:17.25 
  yes, it probably should be parent. d'oh... :-P09:17.35 
tor7 Micha`: this code is fairly untested, the code to use it hasn't really been exercised (or implemented in some cases)09:18.22 
  Micha`: does it work if you make the change in pdf_dict_puts to use parent instead of page_ref? it looks like it ought to.09:20.08 
Micha` tor7: It does indeed.09:20.26 
tor7 Micha`: the one thing this code doesn't do is create a nice well balanced page tree09:20.32 
  and it requires an existing page tree to work with09:20.47 
Robin_Watts or in fact, any page tree if there isn't one to start with :)09:20.49 
Micha` Yes, I'm looking forward to that :-) Creating a PDF from scratch would be great.09:21.07 
tor7 so it can't create a page tree from scratch, it's only really useful for minor page removals or insertions as it stands09:21.13 
  it's on the todo list, but at a very low priority (since we don't have an immediate need for it ourselves)09:21.41 
Robin_Watts tor7: Couple of things on robin/master when you get a mo.09:22.08 
tor7 basically, it should be possible if you (a) handle the fz_throw TODO case of an empty page tree09:22.10 
  and then optimise it by doing a rebalancing function you can call at the end09:22.26 
Micha` For the moment, I only plan to edit PDFs, hence I do not start from scratch, so I'm fine :)09:23.23 
tor7 Micha`: pdfclean has a function to rebuild the page tree (but it makes one flat page tree, not good for performance) when you ask it to drop pages09:23.35 
Micha` Robin_Watts: Did you see my comment about the empty contents?09:23.46 
tor7 and I believe the pdfwrite device has some of its own page tree creation09:23.58 
Robin_Watts Micha`: I did, but I haven't had a chance to investigate it.09:24.02 
tor7 there's a few other things you need to create a valid PDF file from scratch, like the Catalog09:24.15 
Micha` Robin_Watts: No problem.09:24.43 
  tor7: Ah, yes, I see...09:24.59 
tor7 Micha`: the plan is to (eventually) migrate both of them to this new page tree editing API you've found09:25.27 
Micha` I see. What is the current status of the (#if 0)'d code in pdf-write?09:27.46 
tor7 Robin_Watts: what's the fix in draw-device.c with blendmode & FZ_BLEND_MODEMASK about? I don't remember having a bitmask for the blend mode...09:28.08 
Robin_Watts tor7: For the gstate the blendmode has ISOLATED and KNOCKOUT bits.09:28.36 
tor7 oh!09:28.48 
  right.09:28.50 
Robin_Watts so that was a silly typo on my part.09:29.01 
tor7 Robin_Watts: the four commits on robin/master LGTM 09:29.38 
Robin_Watts ta.09:29.44 
  Pushed.09:30.29 
  Micha`: Yesterdays fix is now in the golden repo.09:30.41 
tor7 Robin_Watts: two small fixes on tor/master09:32.48 
Robin_Watts both look fine.09:33.18 
tor7 Robin_Watts: also: grrr. lazy ass delivery bastards. the package would have arrived yesterday if they hadn't been too lazy to get out of their delivery van to ring the doorbell.09:33.51 
Robin_Watts what? They pulled up outside and honked?09:34.18 
  or they rang the mobile?09:34.38 
tor7 in 90% of times they're supposed to deliver, they take a look and say, eh fuck it. mark it as "undeliverable, the person wasn't at home. couldn't reach." with no attempt at doing so. no phone call, no door bell, no nothing.09:34.57 
Robin_Watts I've heard similar complaints from other people that live in cities.09:35.33 
tor7 I got the paper slip with the swedish side tracking number and then at 13:42 -- tried to reach, couldn't.09:35.35 
  yeah. it's pretty much standard practice. load it up on the van for delivery, make the rounds to the easy to get to places, and then back home to the depot.09:35.58 
  annoying as hell though, if you live in the city...09:36.09 
  most people probably don't even know, since they go to work at an office....09:36.24 
Robin_Watts Living in a village I've never had a problem. Of course the fact that I'm home all day everyday means that they mostly know they can drop parcels here for anyone in the street who is out...09:36.42 
tor7 yeah. I was surprised how fast the package arrived to you.09:37.37 
Robin_Watts me too. Google Play said "usually dispatched within 2 days", then the receipt said "will be dispatched in 5 days time", then it arrived 2 days later.09:38.20 
Micha` Robin_Watts: Thanks for the commit! But we may have missed something: "pdf_dict_puts(page->me, "Contents", obj);" should read "pdf...(..., page->contents);" right?09:53.32 
paulgardiner kens: Thanks for spotting the question on stackoverflow. I've answered it. (Not quite off on vacation yet).09:53.54 
kens Ah, thanks paulgardiner09:54.06 
Robin_Watts paulgardiner: Have fun.09:54.17 
  Micha`: Urm... why?09:54.54 
paulgardiner Off Thurs morning, so hopefully will be working most of today and some of tomorrow09:54.57 
Robin_Watts Micha`: Damn. Yes.09:56.11 
Micha` Robin_Watts: Ah! :-)09:56.20 
Robin_Watts tor7: 2 more small fixes on robin/master then.09:57.30 
  Micha`: Thanks again.09:57.34 
Micha` You're welcome.09:58.46 
paulgardiner tor7: there are also some iOS commits on paulg/master10:00.05 
Robin_Watts fts_17_1700.pdf has a JPX image in it that doesn't render properly in mupdf, but does in gs.11:03.14 
  One for shelly?11:03.21 
  gs whinges about it though.11:03.53 
kens whinges how ?11:05.02 
  and in what way renders improperly ?11:05.12 
  need to go look atg wife's computer, brb11:05.36 
chrisl Robin_Watts: IIRC, mupdf doesn't support SMaskInData (or whatever it's called), so it could be that. There are also some colour space heuristics (ahem, hacks!) in the gs interface code, so it could be that11:10.06 
  Robin_Watts: Indeed, at least one of the images in fts_17_1700.pdf has "/SMaskInData 1"11:13.51 
flojpg hello world; i've a simple question for you all -> i've an application which provide text to GS using stdin. Is it possible to add a balise in the original text permiting to "inform" GS that it have to change the font (clearly, i want the same font but bold)12:21.22 
kens Ghostscript doesn't consume text (at least not directly), it consumes PostScript or PDF> Whatever is driving GS must be supplying one of those (most likely PostScript). You can change the font in PostScript using the setfont or selectfont operators12:22.52 
flojpg ok thanks for your help12:23.48 
  i'll try this12:23.52 
Robin_Watts chrisl: ah, thanks.12:24.54 
Micha` In fact, I don't see anything in the PDF spec directed to written annotations. Ink annotations seem to be used 12:38.41 
  oops.12:38.45 
  Let me finish that.12:38.50 
  Ink annotations seem to be used for freehand circling or underlying, and then for typing a note. That's not the same as plainly hand writing a note, plus the Ink type is not really robust --- no color change can be made during a note, for instance. ezpdf has handwritten notes, on Android at least, and it relies on a Stamp annotation for which it defines an appearance. This I consider hacking the spec --- plus, cl12:45.33 
  icking the annotation opens an empty (typed) note, and this seems useless. So as I'm still planning on making a PDF annotator (with handwritten notes), am I right in thinking that the cleanest way would be to have one form XObject spanning the whole page containing the scribbles, possibly depending on an OCG?12:45.33 
  Boy, rcirc could do a better job at splitting messages...12:46.00 
Robin_Watts paulgardiner is the expert on annotations.12:50.44 
  I thought there were text annotations too?12:51.11 
  oh, but you want handwritten?12:51.17 
Micha` Precisely.12:53.02 
Robin_Watts I think for handwritten, when you want to leave the possibility for other people to edit it later, you need ink.12:54.11 
Micha` I have a tablet with a pen, and I feel that no software handles scribbling on the PDF smoothly enough (I currently use an excellent software called LectureNotes, but it requires the PDF to be rasterized, which is no good for PDF books).12:54.33 
Robin_Watts For handwritten when you want a fixed appearance that will never change, stamp will do the job.12:54.35 
Micha` With ink annotations, every time the user changes transparency, color, or thickness, a new annotation should be created. Plus, I don't feel it is the intended purpose of Ink annotations.12:56.08 
  Also, Stamps do not seem to be intended for this. Can a viewer discard the /AP and redo the rendering based on the annotation type?12:57.36 
kens Acrobat (almost) always does so12:58.44 
  Which I think is a really, really bad idea12:58.56 
paulgardiner kens: Really?! That does souns a bad idea.12:59.25 
  kens: is that for annotations in general, or just certain ones?13:00.17 
kens paulgardiner : Acrobat *defintely* does this, we have a number of cases where we ahve a 'bug' because our annotations do not match what Acrobat displays. Yet we render teh appearance stream faithfully. It cna be shown (by extracting the appearance stream) that GS is drawing the AP the same as Acrobat, so clearly Acrobat is ignoting the AP stream.13:00.59 
Micha` Well... As far as I can see in the specs, it is not prohibited to do so.13:01.03 
kens Micha` : Yes, but if I am a content creator, and I go to the effort of creating an AP stream so it looks the way I intend, I would probably be p*ssed off if the viewer decided it knew better and drew something 'like' what I intended.13:01.50 
Robin_Watts tor7: Another fix (making 3) on robin/master13:02.15 
kens paulgardiner : Acrobat ignores AP streams 'most' of the time, there seems no rhyme or reason. CHris and I suspect that the annotation renmdering was done by different people, and sometimes they decided they knew best and just rendered the content, and sometimes they decided to honour the creator's decision13:03.12 
Robin_Watts chrisl: Turns out that SMaskInData doesn't matter for that file. It was an openjpeg 1 vs 2 thing.13:04.14 
  Possibly we should be adopting openjpeg 2 now?13:04.24 
Micha` kens: And you'd be right to be pissed. But if it is specs-compliant, the problem may lie more in the specs.13:05.01 
paulgardiner I'm sure I've seen many places in the spec where it explicitly states that the AP takes precedence if present13:05.36 
kens Micha` : I don't say its not spec compliant (and the PDF spec is very poor), I'm just saying that in my opinion its a very bad idea13:05.42 
Micha` Agreed.13:05.52 
kens FWIW one of the reasons Marcos had trouble with a (huge) PDF file recently was that the bug was a missing AP stream, and whenever Marcos edited teh PDF file and saved it, Acrobat quietly added an AP stream for him.13:06.49 
  paulgardiner : an 'easy' way to test is to create a PDF file with one of every annotation type, then nobble the AP streams so they all point to the sma stream, eg a black box, and see what the viewer makes of it.13:07.46 
paulgardiner Micha`: I haven't yet fully understood why an Ink annotation (or collection of several) is wrong for your application.13:08.14 
Micha` Table 164, on the AP line, specifies: "Individual annotation handlers may ignore this entry and provide their own appearances."13:08.16 
paulgardiner kens: I had noticed that Acrobat ignored the AP for a signature annotation when information from the signature was missing, but then displayed it when the rest of the information was in place. I guess that's one case that could be deemed sensible.13:10.19 
kens paulgardiner : yes, possibly, but I've seen it ignore perfectly valid annotations with AP streams too13:10.50 
paulgardiner Micha`: Oh yes. Clearly the spec allows it. Perhaps it does make sense for some types of annotations (e.g., text annotations), where you might want your app to use a consistant icon to show where one might open up a hidden note.13:17.16 
Micha` paulgardiner: It is not wrong per se, but there are three reasons why I'm not sure it is the optimal choice. First, an annotation, AFAIU, is foremost an access to a typed note. My use do not fit this intention as I do not want typed notes; obviously I could just disregard that, but I'd rather conform to the spirit of the specs. Second, when I take notes on a paper, I have half a dozen different pens, hence I will13:17.21 
  have at least that many Ink annotations. Third, and a consequence of Second, when erasing, I will have to go through all the Ink annotations to find the points to erase. This may overload the process (though I'm not sure). If I go for an OCG'd form XObject, I will have to consider only one object at a time.13:17.21 
paulgardiner Yes. Might be best. And you more easily guarantee getting the same results in other viewers.13:19.32 
Micha` paulgardiner: Thanks a lot for the advice. Your hindsight is very much welcome as I did not have a clue what an OCG was a few hours ago :)13:27.46 
paulgardiner Micha`: No problem. Glad we could help.13:28.57 
Robin_Watts So, when did we decide the meeting time was today? :(14:08.07 
  oops. :) instead of :(14:08.12 
kens AIUI 4:30 pm uk time, one meeting14:09.11 
Robin_Watts Running through the fts cases for the svg device has been interesting. I've found a few things that mupdf gets wrong.14:14.53 
  tiling patterns being one of them. I hate it whenever I have to make changes in this stuff.14:15.39 
kens patterns are horrible14:16.21 
paulgardiner Wasn't it 7:30 to 8:15 EST14:21.33 
kens Err, is that 3:30 UK time then ?14:22.54 
paulgardiner Yeah. I may be misremembering though14:23.13 
henrys yes 5 minutes14:24.25 
kens ah thanks henrys14:24.33 
henrys PST paulgardiner14:26.26 
paulgardiner Ah. That would explain the trouble I was having making it come to 3:3014:27.15 
henrys I just added research MS Office solutions to the agenda.14:29.39 
kens henrys on the 'GS->Languages' item, I have added teh ramfs code, and closed #69336314:30.33 
paulgardiner henrys: I've been mainly continuing work on the iOS app this week, but I have started looking at libreoffice this afternoon.14:31.23 
henrys At Chicago Print there has been a booth next to us with guys doing PDF -> Word and other formats. I would think that would be more popular than it is.14:31.27 
  kens:super14:31.42 
  kens:but I must have missed the commit message somehow - I do try and keep up with everything.14:32.23 
chrisl henrys: and I'm done with 69451914:32.23 
kens henrys let me look for the commits14:32.38 
paulgardiner On the iOS front I have form filling working but without javascript of course14:33.10 
henrys chrisl: that I did see, I've marked the 2 done on the agenda14:34.03 
kens ramfs b5472ea6bf6925023febdeab12be9dbd83e811f1 d97571b56d7c740e7d6aeee064313b96048a566714:34.07 
  29ed18f26f78d3e737b5e73452b1aa1a9008814414:34.08 
chrisl henrys: thanks14:34.20 
mvrhel_laptop kens: did you see that I fixed the xps trans issue you found. that was an interesting one14:34.26 
paulgardiner And I've just realised that checkboxes probably now work, but I haven't tested them :-)14:34.29 
henrys chrisl: my suggested solution to yesterday's bug was sent as a patch to the 9-1 customer did you see it?14:34.34 
kens mvrhel_laptop : yes I saw you had fixed it, thanks for that!14:34.39 
chrisl henrys: I saw the mail, I didn't look at the patch - I'll look now14:34.55 
kens Bug 693363 was commit 9c13e3b9e735ba119f58c751a51fc55efef15a0c14:35.03 
henrys chrisl: I didn't test gs ;-)14:35.14 
  chrisl: but what could possibly go wrong ?14:35.28 
chrisl henrys: it really shouldn't affect gs14:35.37 
kens henrys probably want to remove the RAM I/O device from 'someday projects' too14:36.33 
mvrhel_laptop marcosw: did you see my comment about 694707?14:37.00 
henrys kens:yes14:37.02 
chrisl henrys: did you actually check if using 64 bit color indices carried a performance penalty? I'd be a little surprised if that was still the case14:37.13 
  henrys: the patch looks okay - assuming it tests out with GS, of course :-)14:38.16 
henrys marcosw:how do you feel about me taking Mac Pro off a bit - I'm thinking of using windows on it. 801 is going to have more questions and they report probably on both.14:38.29 
  chrisl: last I check there was significant penalty yes. 10 to 15 % if I remember correctly.14:39.08 
  on certain files only.14:39.24 
Robin_Watts chrisl: I cannot think of a platform on which 64bit wouldn't be a cost.14:39.44 
chrisl Robin_Watts: I'd have thought platforms with native 64 bit support would be fine14:40.48 
Robin_Watts chrisl: The cost will be lower there, sure, but there is still more overhead in loading/saving to memory.14:41.20 
henrys Robin_Watts, chrisl as you guys can see from the include file we've tried quite a few experiments with color indices.14:41.23 
  chrisl: I do wonder if there is some optimizations we could do that would make the overhead insignificant 14:43.43 
  paulgardiner: how is iOS?14:44.03 
chrisl henrys: it may be that we're copying structure contents around, when passing a pointer would be more efficient.14:44.28 
paulgardiner henrys: Have reflow and form filling working. Still have javascript integration, signature support and printing to add.14:45.07 
  Sorry and annotations14:45.29 
henrys paulgardiner: wow moving right along. It can't be as painful as we thought14:46.01 
paulgardiner although there's a fair crossover between annotations and form filling (because of partial updates) that's now done14:46.16 
henrys Robin_Watts: I don't know if your read my message to 801 but you might be a good candidate for that project if they say yes. I guess ray could do it also.14:47.12 
Robin_Watts I hadn't spotted anything. Let me check again now.14:47.38 
henrys tor7:how's GL?14:47.59 
  mvrhel_laptop: finally back to mupdf?14:48.37 
Robin_Watts henrys: The device with different resolutions per plane. Scary.14:48.54 
mvrhel_laptop henrys: I am hoping to. kens dropped an ICC question on me that I will look at real quick and then I will fix my threading issue in the windows app14:49.30 
kens 2 ICC questions :-)14:49.38 
mvrhel_laptop had a nice discussion with Robin_Watts last week about my issues14:49.40 
Robin_Watts for some definition of nice.14:50.08 
mvrhel_laptop kens: oh yes 2 questions ;)14:50.09 
  I will look at those this morning14:50.16 
kens THanks :-)14:50.20 
henrys mvrhel_laptop: well I'm glad you've discussed your issues with somebody ;-)14:50.38 
mvrhel_laptop ha14:50.49 
paulgardiner henrys: yeah. I like the structure that Tor created, now I understand it better, and the new stuff is fitting in quite naturally.14:51.18 
henrys paulgardiner: oh good where is the mighty tor7?14:51.55 
  any other meeting business?14:53.16 
paulgardiner I don't know. He was here earlier... slightly worrying.14:53.16 
kens I don't have anything else today14:53.35 
henrys I guess marcosw and ray forgot about the new meeting time and will show up at the hour.14:54.02 
kens Possibly tor7 as well14:54.18 
paulgardiner I have some worries about libreoffice, but I need to get a better understanding of it before I'll no if they are legitimate worries.14:54.45 
  s/no/know/14:54.56 
henrys libreoffice is C++?14:55.18 
paulgardiner yes.14:55.40 
Robin_Watts In case anyone has missed the lcms2 discussions, it seems we have a way forward that Marti is happy with. If anyone wants to chime in, feel free to read the discussion in the logs.14:55.57 
paulgardiner The oox part is fairly small, but the whole thing is huge14:56.01 
Robin_Watts libreoffice is C++ and MPL, so that sounds pretty good - if we can extract just the bits we need.14:56.15 
henrys hmm LGPL?14:56.19 
paulgardiner I have yet to work out how selfcontained the oox part is14:56.28 
Robin_Watts It's dual MPL and GNU GPLv3.14:56.34 
henrys Robin_Watts: ah right14:56.41 
kens Robin_Watts : I read the discussion, but there's nothing I cna usefully say14:56.58 
mvrhel_laptop kens. so where is 247-05.ps?14:57.00 
paulgardiner Most of what I've looked at so far is MPL14:57.01 
  but I haven't sussed whether it pulls in any LGPL stuff.14:57.16 
kens mvrhel_laptop : ther original file ? Its in tests_private soemwhere14:57.16 
  Its one of the QL test files14:57.25 
mvrhel_laptop I can't seem to find it14:57.28 
ray_laptop good guess, henrys 14:57.29 
kens give me a second14:57.29 
  Actually I htink that should be 247-05.ps14:57.55 
  Indeed it shold be14:58.05 
paulgardiner The whole oox directory looks to be MPL14:58.15 
Robin_Watts paulgardiner: I thought the whole thing was both MPL and GNU GPLv3. I didn't think that there were different components in different licenses, but maybe I misunderstood.14:58.33 
kens mvrhel_laptop : /home/marcos/cluster/test_private/comparefiles/247-05.ps14:59.00 
mvrhel_laptop oh compare files14:59.05 
  ok14:59.07 
  sorry14:59.12 
kens NP14:59.15 
paulgardiner Yeah. I was just going to add the proviso "If I'm understanding how the licencing works"14:59.27 
kens And ineed there is a 245-07 in there14:59.40 
henrys chrisl: do do you want me to take care of the patch?14:59.52 
chrisl henrys: if you don't mind, yeh.15:00.32 
henrys chrisl: will do.15:00.44 
chrisl Thanks15:01.16 
paulgardiner Robin_Watts: many of the files mention only MPL. I don't know whether they are infected with LGPL by being collected with files that mention LGPL15:01.32 
henrys I do wish we had windows testing. Compiling with different color index values would have revealed a crash in pcl immediately.15:01.51 
paulgardiner Clearly if you build something from a collection of MPL and LGPL files then it's LGPL, but I don't know what happens if you pull out just MPL files and use only those.15:02.32 
mvrhel_laptop kens: ok so 245-07.ps 15:02.44 
kens yep15:02.48 
mvrhel_laptop got that one15:02.54 
kens OK I htink I sent you a cut down file for the other problem15:03.07 
chrisl henrys: would it have shown on Unix, too? Maybe we should have 32bit color indices in the weekly tests?15:03.15 
paulgardiner I cannot at this stage tell if the oox part will build without pulling in all the huge number of libraries that make up libreoffice/core15:03.16 
ray_laptop henrys: windows also uses 64-bit color_index15:03.17 
mvrhel_laptop kens: yes. thank you15:03.34 
kens NP15:03.38 
henrys ray_laptop: due to a bug in pcl part of the code would be 32 and part 64 if built with 64, that easily preventable stuff with good testing.15:04.40 
kens mvrhel_laptop : I forgot a point, for the second ICC question, you need to use -sDEVICE=pdfwrite -dPDFUseOldCMS=false15:06.59 
mvrhel_laptop ah ok15:07.05 
  thanks15:07.08 
ray_laptop henrys: right, but we can build with 32-bit color index on unix no or windows, tight ?15:07.08 
mvrhel_laptop I have to head out right now. I will be back in about 30 minutes15:07.40 
henrys chrisl: we have eliminated recursive make of the library makefile in gcc, I wish we could do that in msvc, it is much simpler.15:09.04 
  chrisl: but indeed it should be tested.15:09.13 
sebras-hotel paulgardiner: wouldn't that MPL file still be MPL? I mean that was the original license. the fact that MPL happens to be compatible with LGPL doesn't change the license of the file per se..?15:09.28 
  paulgardiner: otherwise BSD-people would complain even more about GPL... :)15:09.46 
Robin_Watts sebras-hotel: I think the worry is that the MPL stuff might build upon GPL stuff.15:09.59 
  so we'd need to reimplement the GPL layers in order to use it.15:10.14 
  http://www.kickstarter.com/projects/117421627/the-peachy-printer-the-first-100-3d-printer-and-sc15:11.00 
paulgardiner Both issues were worries of mine, although your interpretation sebras-hotel was the one that seemed most likley to me15:11.14 
Robin_Watts Interesting. A 3d printer for $100.15:11.15 
henrys ray_laptop: we can build with 32 or 64 on windows and unix.15:11.26 
chrisl henrys: there are recursive make calls in ugcc_top.mak - but they are fairly sane ones, unlike the msvc ones15:11.36 
sebras-hotel Robin_Watts: ah, to make a commercial license viable? (I seem to recall that MPL would allow this, just like BSD)15:11.46 
tor7 henrys: oh, meeting's earlier rather than later?15:11.57 
henrys ray_laptop: have a look at what I just emailed 801 - it might effect you anyway, so worth the read.15:12.04 
tor7 I ran out to pick up the chromebook so I'd be ready for the meeting... oops.15:12.16 
henrys tor7:new meeting time is 7:30 PST15:12.28 
Robin_Watts sebras-hotel: Indeed. Without a commercial license we wouldn't be interested.15:12.35 
tor7 henrys: have you switched from DST yet?15:12.52 
  henrys: GL has clipping, going to take a break from that and see if we can render in CMYK15:13.02 
sebras-hotel Robin_Watts: no of course not, and GPLv3 written by someone else and not dual licensed under BSD or similar would make it a problem.15:13.10 
Robin_Watts henrys: That device sounds interesting. I'd be happy to have a look if you wanted me to. but then if ray particularly wanted to do it, I wouldn't fight for it :)15:13.15 
ray_laptop henrys: OK.15:13.46 
henrys Robin_Watts: what they have now is going to be very slow - I mean copying all that data… lord15:14.24 
chrisl Are the two resolutions guaranteed to be easy integer multiples?15:15.32 
henrys we've had experiences where customers have released products we didn't want to be associated with I'd like to avoid that.15:15.49 
Robin_Watts chrisl: I would assume a fixed 2:1 ratio.15:16.08 
henrys chrisl: yes it looks to be strictly 300 and 60015:16.11 
Robin_Watts henrys: Presumably this is a planar device ?15:16.24 
ray_laptop henrys: right, it's better to render things directly.15:16.32 
Robin_Watts Do we have any history of having devices with different resolutions? Cos I bet that will break all sorts of assumptions in clist etc.15:17.07 
ray_laptop henrys: but I'm not sure about a render device that has different res per plane (all but black at half res)15:17.36 
chrisl Postscript has no provision for that, so I doubt there's history15:17.59 
ray_laptop Robin_Watts: the clist would need to be at 600 dpi, then the buffer device (special memory device) would convert the coordinates15:18.25 
henrys Robin_Watts: I thought we could just do copy_color, fill_rectangle and the low level stuff and skip pixels why change the res?15:18.37 
Robin_Watts henrys: That will play hell with halftoning etc.15:18.57 
ray_laptop the clist needs to maintain a single res. 15:19.01 
  Robin_Watts: they are contone15:19.09 
henrys Robin_Watts: there is no halftoning15:19.21 
  full color15:19.26 
Robin_Watts OK, so patterns.15:19.29 
  We just had a bug where a pattern had alternate lines empty.15:19.35 
chrisl IIRC, someone like Scitext (kens do you remember?) did something like that - 600dpi for line art, and 300 dpi for contone15:19.43 
ray_laptop Robin_Watts: patterns and all bitmaps in the clist would be at 60015:19.52 
Robin_Watts and because at certain resolutions we picked the empty lines, the pattern would disappear at certain resolutions.15:20.03 
ray_laptop Robin_Watts: patterns are inherently resolution independent (at least in PDF), 15:20.48 
kens chrisl it was Dwight I think, but the output format was Scitex, CT/LW15:20.58 
  ray_laptop : not whenyou render them15:21.13 
ray_laptop in PS you can write stuff that uses tricks to make stuff resolution dependent15:21.19 
Robin_Watts ray_laptop: Tell that to the bug we were just looking at!15:21.20 
ray_laptop kens: no, I meant the definition of the patten in the PDF is not aware of the device re.15:21.38 
kens ray_laptop : correct15:21.45 
henrys Robin_Watts: well it would be no different than what they have now.15:21.50 
kens But when you redner the pattern, the resolutiopn becomes important15:21.57 
Robin_Watts henrys: Well, at the moment they are downsampling, right? So taking an average?15:22.08 
henrys which I assume they are satisfied with but that may be a badd assumption15:22.13 
ray_laptop Robin_Watts: there's lots of cases where images, using the "center of pixel" rule cause dropout15:22.18 
Robin_Watts Are you proposing we do that too?15:22.30 
henrys Robin_Watts: they are not they are skipping15:22.30 
Robin_Watts oh, ok.15:22.36 
  What happens when we do 'getbits' ?15:22.54 
  We'd have to pixel double up again.15:23.02 
ray_laptop seems like a 'darkest of the source pixels' would be better15:23.15 
chrisl kens: was Dwight's the only RIP that supported the Scitex device, then?15:23.44 
kens chrisl the only Jaws one I remember15:23.55 
ray_laptop Robin_Watts: presumably they would request the planes, and the color planes would be at the lower res15:24.30 
Robin_Watts ray_laptop: How would they request the planes? using getbits?15:24.48 
  No mechanism in getbits to signal that planes are at different res.15:25.01 
henrys Robin_Watts: correct they've added that to our code already so easy enough to use what they have.15:25.40 
ray_laptop henrys: I haven't looked at that bit of hackery, do they convert to chunky pixels or separate planes (or line interleave)15:25.44 
Robin_Watts henrys: They've added what to our code already?15:26.07 
henrys ray_laptop: all chunky15:26.08 
  Robin_Watts: and indicator at the beginning of each buffer what resolution it is.15:26.27 
Robin_Watts At the moment I would imagine that they 'getbits' chunky pixels, and then downscale certain planes.15:26.41 
  or maybe 'getbits' planar planes, and downscale.15:27.02 
  They won't be changing our internal represenations at all so far, right ?15:27.17 
henrys Robin_Watts: actually what they do is a bit different from what I said - they know the black data is 600 and the rest is 300 - they pickle in the width of each line when the copy not sure why that is necessary. Probably easiest for you guys to read the code it is fairly straightforward, hell I understand it ;-)15:29.53 
Robin_Watts henrys: Where can I get a copy of the code?15:30.16 
  I suspect that everything they currently do is 'post-getbits'.15:30.28 
  Which is an infinitely sensible place for it, IMHO.15:30.38 
ray_laptop henrys: since you were doing it, I just haven't bothered (working on cust 532 issues)15:30.39 
  Robin_Watts: yes, except they are rendering at 600 and processing every pixel -- which isn't great for performance15:31.24 
Robin_Watts The only way you'd get significant benefits to doing stuff *pre* getbits, is if you could arrange for the original copy_mono/copy_color etc calls to be at the lower res.15:31.25 
ray_laptop Robin_Watts: but I agree that it's *nicer*15:31.35 
Robin_Watts Otherwise you're having to downscale on every device call.15:31.43 
henrys marcosw posted the ftp location somewhere I'll look.15:32.03 
ray_laptop Robin_Watts: well, copy mono for black wouldn't have to do anything15:32.11 
Robin_Watts ray_laptop: No, I disagree. I think that it's going to far faster to process everything at 600dpi then downscale just once at the end.15:32.14 
ray_laptop and black text is the common case15:32.31 
  I'm sure that's why they have black at higher res -- for text (particularly small CJK fonts)15:33.07 
Robin_Watts ray_laptop: So when their device gets called with a 600dpi bitmap to 'copy_mono' they need to downscale that at that point.15:33.09 
  That is hardly doing nothing.15:33.13 
ray_laptop Robin_Watts: but for black they don't downscale15:33.33 
Robin_Watts Consider a page with a signficant amount of overpainting.15:33.34 
henrys the color is downscaled not black15:33.45 
Robin_Watts ray_laptop: OK, so not for black, for one of the color planes.15:33.49 
  If there is a lot of overpainting, then you'll downscale every color component value for every paint of that pixel.15:35.05 
  Whereas if you just do the dumb thing and downscale at the end, you only touch each pixel once.15:35.24 
  Wholesale is cheaper than retail.15:35.29 
ray_laptop Robin_Watts: right -- if the color planes need to be erased (because they aren't white) we'd need to get the downscaled mask15:35.29 
henrys support email search for "ftp" July 17 2013 Robin_Watts and ray_laptop ...15:35.42 
Robin_Watts This is why the downscaler for tiffscaled etc works post getbits.15:36.02 
henrys they actually went through the trouble off sse'ing the copied data, so I assume performance is an issue.15:36.17 
ray_laptop Robin_Watts: I agree that doing the buffers at the end is simpler, and easier to tackle with SSE code15:36.59 
henrys however the memory savings would be quite significant if there are few bands or full frame if could allocate 300 dpi space for 4 planes and 600 for 1. There's is a 5 color device.15:39.16 
ray_laptop henrys: I see one that my email thinks is 7/18 with M.S. saying he uploaded their project to the FTP site15:39.20 
  henrys: I don't think they are memory constrained15:39.42 
henrys ray_laptop: probably not.15:40.09 
Robin_Watts henrys: Yes, we would save memory by holding those bands at lower res. But I fear we would lose speed.15:40.33 
ray_laptop henrys: and didn't you say that they need shorts ? is their color model 16 bits per pixel or 8 ?15:40.35 
Robin_Watts yeah, why 16bits per component ?15:40.47 
  ray_laptop: component, not pixel, AIUI.15:41.01 
henrys Robin_Watts: I was surprised about that as well and hence brought it out in the email for clarity15:41.18 
  is there something about SSE that would make shorts preferable?15:42.05 
ray_laptop Robin_Watts: I admit that downsampling a copy mono every time we paint a glyph would be slow IF we need to which is for copy mono with a color that is not black or, when the color is black and the color planes are not white15:42.40 
  henrys: is the black plane 16 bits as well ?15:43.20 
Robin_Watts henrys: Which zipfile from the ftp site?15:43.21 
  xxxx_project.zip or xxxx_project_0822.zip ?15:43.36 
henrys chrisl: you said another customer was doing this. Was it planar rendering.15:43.42 
  Robin_Watts: either one has a few bug fixes for running on linux which you won't use.15:44.22 
Robin_Watts I'll take the latter one then - newer, and 1/3 of the size.15:44.44 
henrys Robin_Watts: use the latest one.15:44.48 
Robin_Watts thanks.15:44.57 
chrisl henrys: not our customer, an old Jaws OEM.15:45.17 
henrys and if you use pcl you need the fix I just emailed him - gs should be okay15:45.21 
  chrisl: do you know if they were doing planar rendering?15:45.38 
chrisl They would have been doing serial separations, I believe. Each separation produced by rerunning the display list15:46.16 
henrys ray_laptop, Robin_Watts It does seem if we went to a planar rendering model we could do different CTM's just a matter of coding ;-)15:46.30 
Robin_Watts chrisl: Is the jaws displaylist resolution dependent ?15:47.00 
ray_laptop henrys: the problem is with bitmaps (images or glyphs)15:47.32 
Robin_Watts henrys: If we went to a planar rendering model, and wanted to hold different planes at different res, I think you'll give the clist a stroke :)15:47.42 
henrys Robin_Watts: yeah you are right.15:48.05 
chrisl Robin_Watts: largely so, but not completely. For the few cases it wasn't it was good enough to create the display list at high res, and do "stuff" to get it to lower res15:48.06 
ray_laptop to have resolution independent display list, text has to be paths, and without glyph caching of the bitmap that would SUCK with performance15:48.55 
chrisl ray_laptop: the glyphs were resolution dependent, but were generally in black, and therefore at the higher resolution15:49.33 
Robin_Watts ray_laptop: That's not true.15:49.55 
  MuPDF has a resolution independent display list.15:50.08 
ray_laptop I suppose you *could* have text as paths, and then have the glyph cache in the playback, and render to both resolutions15:50.15 
chrisl ray_laptop: note this was slightly different, as the differentiation was contone vs line art, not based on separations15:50.23 
Robin_Watts It's just a different set of choices that you carry through.15:50.25 
ray_laptop Robin_Watts: mupdf has text as high level, right ?15:50.31 
Robin_Watts ray_laptop: Right.15:50.37 
  The problems that clist has with this instance are a consequence of the design decisions that were made right at the start of designing clist.15:51.03 
ray_laptop so as I said, the glyph cache is performed in the reader when it knows the res15:51.09 
Robin_Watts And they were probably made for good reason.15:51.19 
mvrhel_laptop is marcosw around15:51.40 
ray_laptop storing glyphs as path in the clist would be resolution independent. We'd just have to add caching15:51.53 
Robin_Watts ray_laptop: 'just'.15:52.10 
henrys mvrhel_laptop: I've been looking for him too.15:52.10 
mvrhel_laptop ok15:52.14 
  maybe at 915:52.24 
ray_laptop Robin_Watts: simpler than putting all of the font logic post clist.15:52.50 
Robin_Watts ray_laptop: I don't have a clear enough view to have a strong opinion on how it works out with the wacky clist bitmap cache management.15:53.58 
mvrhel_laptop kens: for the first questions do I need to run any special command options?15:53.59 
ray_laptop except for text, the clist is resolution independent (at least when we don't do "default" image processing to lots of rect fills)15:54.09 
henrys for this particular problem why couldn't we just render fonts at 600 dpi and put them in the clist?15:54.16 
mvrhel_laptop or just render even to a raster device15:54.18 
kens mvrhel_laptop : yes you will still need the -dPDFUseOldCMS15:54.22 
Robin_Watts For mupdf, it's a lot cleaner to have the font logic post clist.15:54.27 
kens but the question really is 'am I doing something dumb' ?15:54.34 
ray_laptop Robin_Watts: I strongly agree that the clist tile cache is wacko15:54.37 
  Robin_Watts: cleaning that up is on the enhancement list15:54.55 
kens mvrhel_laptop : you can see the colour space has no icc_equivalent without going near pdfwrite15:55.01 
mvrhel_laptop where can I catch it like this?15:55.23 
  kens ^^15:55.31 
kens mvrhel_laptop : Hmmm.....15:55.35 
  In zimage1 I think15:55.43 
  Or possibly zimge1_setup15:55.52 
ray_laptop henrys: we could render fonts at 600 (and do). the problem is when painting the glyph that is not black, or when we need to erase bits that are painted black on color planes15:55.59 
kens Let me get a debugger up15:56.01 
Robin_Watts Their device looks to be doing the funky color encoding chicken dance.15:56.17 
ray_laptop henrys: the common case of black text on white would be fine.15:56.38 
Robin_Watts I bet planar operation would help immensely.15:56.40 
kens mvrhel_laptop : If you break in image1_setup you can see it15:57.02 
ray_laptop Robin_Watts: they are switching to 9.10, so hopefully will not be using the compressed color encoding15:57.14 
kens break on line 209 in zimage.c15:57.17 
  just after:15:57.35 
  gs_color_space *csp = gs_currentcolorspace(igs);15:57.35 
ray_laptop Robin_Watts: yes, and avoid the whole compressed encoding problem15:57.48 
kens you will see that csp->icc_equivalent is NULL15:57.53 
henrys Robin_Watts: the action starts in clist_render_thread() in the code you've downloaded.15:58.44 
ray_laptop henrys: so they are currently rendering to 8-bit (40 bit depth), then just moving the 8 bits to shorts for some reason, right?15:58.55 
Robin_Watts henrys: Oh, god, so they've fiddled with the internals of gs?15:59.08 
henrys Robin_Watts: yes which I want to also get us free of. We need a maintainable solution not some patchwork15:59.48 
ray_laptop typical of "do it yourself" customers15:59.49 
Robin_Watts I was just reading gdevxxxx.c and gdevxxxxgraph.c16:00.00 
mvrhel_laptop ok the issue is that it has not really tried to paint with that space yet16:00.09 
  I suspect16:00.11 
kens mvrhel_laptop : No it won't have,m its just an image16:00.25 
  So we draw the image in that space16:00.31 
mvrhel_laptop once we start drawing it does the creation I think16:00.49 
  and yes16:01.01 
henrys Robin_Watts: I think it easier to understand if you read the mods to gxclthrd.c but whatever works.16:01.06 
ray_laptop henrys: they are doing BNM from the contone into planar data in pms_600x600to300x300_MTR_5C16:01.07 
mvrhel_laptop in gs_image_begin_typed16:01.09 
kens : Hmm, either pdfwrite doesn't go there, or it doens't woprk, just a moment16:01.33 
mvrhel_laptop in gsimage.c line 21916:01.44 
  it does a code = gx_set_dev_color(pgs); which then leads to things getting set up16:02.06 
henrys anyway I leave it to ray_laptop and Robin_Watts I have my own chaos to unravel.16:02.41 
mvrhel_laptop kens: I am doing pdfwrite16:02.46 
kens mvrhel_laptop : me too give me a minute16:02.57 
mvrhel_laptop brb in 2 secs16:03.04 
ray_laptop henrys: what a MESS that code is16:03.11 
Robin_Watts Why? Why? Why? Why would they fiddle with it THERE?16:03.51 
henrys ray_laptop: yes I really want to act proactively and get a good working solution or we're going to get in a hole with this one.16:04.11 
kens mvrhel_laptop : THat works for the imagemask, but not for the image16:04.21 
henrys that much is obvious16:04.24 
kens For the image, uses_color is false16:04.33 
Robin_Watts henrys: Indeed. I think we should send them a strongly worded email saying that we consider them to be working the wrong way.16:05.01 
  When they move to 9.10 they should do stuff in the device.16:05.22 
ray_laptop Robin_Watts: I suspect it is because they want it to be multi-threaded. Their device is in the main thread16:05.29 
Robin_Watts ray_laptop: Urgh.16:05.45 
kens mvrhel_laptop : do you follow me ?16:05.52 
ray_laptop Robin_Watts: but they'd be better off (IMHO) just spawning threads in their device16:05.55 
  they are probably (like many folks) sort of scared of threads, but I sure hope they know what they are doing in all that mess to make it thread safe.16:07.17 
henrys Robin_Watts, ray_laptop I also don't want to be rude - I'm going to bring in takane-san and consult with him about how best to pursue this.16:08.34 
ray_laptop henrys: PLEASE!!!16:08.49 
Robin_Watts ray_laptop: Yes, I bet you're right about them wanting the benefit of multi-threading.16:09.07 
  That would explain why they've put it in there.16:09.15 
ray_laptop I'd rather us do it then have them have stuff buried in gxclthrd.c16:09.16 
  and those pms BNM functions can't be fast16:09.48 
mvrhel_laptop kens : I am back16:12.21 
kens OK mvrhel_laptop THe first pass is an image which sets uses_color to false, so we don't execute gx_set_dev_color16:12.58 
ray_laptop henrys: unless you want me to dig into this mess, I'm just going to ignore it until we hear back from them16:12.59 
  and work on the urgent cust 532 issue16:13.11 
kens mvrhel_laptop : THe imagemask (the second call) does have 'uses_color' true so that works16:13.18 
henrys ray_laptop: makes sense16:13.21 
mvrhel_laptop kens: so where do you need to have the icc profile and you don't have it?16:13.48 
kens mvrhel_laptop : The image (first call) ends up innew_pdf_begin_typed_image and there is no Icc_equivalent in the color space, I need one there.16:14.29 
  I could do it myself if that's reliable.16:14.45 
  ie I can test the icc_equivalent, and if its nULL I cna call gx_set_dev_color16:15.10 
  Oh actually, maybe I can't, I'm not sure I have a full graphics state16:15.35 
  No, its OK I do have a full graphics state, so I cna do it myslef16:16.06 
  If you think that's acceptable16:16.14 
Robin_Watts henrys, ray_laptop: A smart way to do this might be to allow devices to declare a 'post-render' function that will get called on each band (or buffer) after rendering is done.16:16.18 
ray_laptop Robin_Watts: right. That would let tiffscaled scale the buffers in multiple threads, which would please cust 53116:17.21 
Robin_Watts That would get the device the multi-threading stuff for free.16:17.28 
  ray_laptop: Hmm. hadn't considered that, but yes.16:17.38 
ray_laptop Robin_Watts: they have BIG IRON 12 core Xeon and use the tiffscaled sometimes I think16:17.55 
Robin_Watts tiffscaled uses error diffusion, so each band is not independent.16:18.06 
ray_laptop Robin_Watts: I thought tiffscaled just did thinks like 600 to 200.16:19.00 
mvrhel_laptop kens: so I am never getting to new_pdf_begin_typed_image16:19.07 
  what am I doing wrong16:19.16 
ray_laptop goes to check the tiffscaled docs16:19.26 
mvrhel_laptop am I supposed to have -dPDFUseOldCMS?16:19.32 
kens mvrhel_laptop : you need to set -dPDFUseOldCMS=false to get there, other wise you end up in pdf_begin_typed_image16:19.34 
Robin_Watts ray_laptop: The downscaler changes resolution and/or color depth.16:19.38 
mvrhel_laptop oh = false16:19.43 
kens mvrhel_laptop : but the poitn is that the color space at that time has no icc_equivalent, you don;t really need to go there16:20.02 
Robin_Watts In particular, it can go from 8bpp -> 1bpp, and for that it uses error diffusion to get much nicer results than simple dithering.16:20.07 
ray_laptop Robin_Watts: I see (having read the docs, now)16:20.29 
mvrhel_laptop kens: well I am just trying to see the stack at that point and why we dont have one16:20.31 
marcosw_ sorry I'm late16:20.40 
Robin_Watts ray_laptop: But for non color depth changes, yes, working on the threads would be nicer.16:20.56 
ray_laptop Robin_Watts: BNM is almost as nice and *much* faster, so it should be an option (IMHO)16:21.05 
kens mvrhel_laptop : OK well if you set -dPDFUseOldCMS you'll end up in the new funstion, if you don't then you end up in pdf_begin_typed_image, but the bew one uses icc_equivalent while the old one does not.16:21.30 
mvrhel_laptop kens: you have a full gstate there16:21.36 
ray_laptop Robin_Watts: and BNM *could* be done in threads16:21.37 
kens mvrhel_laptop : yes, I did say that in one commetn above16:21.49 
mvrhel_laptop ok16:21.53 
kens I also said I cna gall gx_set_dev_color, if its appropriate to do so and won't cause nay headaches ;-)16:22.19 
Robin_Watts ray_laptop: right.16:22.21 
mvrhel_laptop kens: it really is the only way to do it. until that is done, the profile will not be generated16:22.44 
kens mvrhel_laptop : No problem, then I will go ahead and add that check throughout (there are a number of places I assume that icc_equivalent is set). I'll do it tomorrow though. Thanks.16:23.29 
mvrhel_laptop ok.16:23.38 
  so does this solve question 2 too?16:23.44 
ray_laptop if anybody needs me, just SMS if I'm not responsive here.16:24.29 
henrys marcosw: we'd like to test GX_COLOR_INDEX of size 64 and 32 (compile time) is that okay?16:25.22 
kens mvrhel_laptop : I don't think so. In that case the colour I'm getting back from the CMS seems to be incorrect.16:25.28 
henrys marcosw: do we test anything that varies at compile time?16:25.54 
kens mvrhel_laptop : Its a CIEA space, and the colour value is '1' when I render that it comes out as white. When I convert it to RGB it comes out as mostly black16:26.01 
sicos good evening16:27.20 
  Does somebody know if it is normal with ghostscript to get an inverted tiff file (black is white and white is black) when I use the tiffscaled device with g4 compression to convert a pdf to tif?16:28.08 
chrisl sicos: that sounds wrong.16:29.30 
sicos it happens with every pdf that I use16:29.42 
  When I use g3 compression everything is fine... but I need g4 compression16:30.05 
mvrhel_laptop kens: ok I will take a look16:30.20 
sicos I tried gs 9.06 to 9.10 but all have the same problem16:30.33 
kens mvrhel_laptop : thanks. I have to go off and deal with dinner now, I'll be back later16:30.40 
chrisl sicos: well it sounds like a bug. Why do you *need* g4?16:30.43 
sicos We have some scanner software that does some ocr ... it only accepts fax ccitt 4 compression (g4)16:31.21 
  It refuses to accept anything else16:31.41 
chrisl Well, report a bug, and we'll look into it16:32.06 
sicos I'll do16:32.14 
  kens.. have a nice dinner16:32.38 
chrisl sicos: what platform are you running? Did you build gs yourself?16:33.43 
sicos Just another question... Why is the output quality better when I use -r600 with for example downscale factor 6 to get a tiff with 100dpi instead of just using -r100 ?16:33.46 
  chrisl .. I'm on Windows and downloaded gs from the download page16:34.14 
chrisl I think if you use -r600 you get 600dpi output16:34.40 
Robin_Watts chrisl: No, he's right.16:34.56 
sicos I got the problem on my work with windows xp, also have it on a windows 2003 server and at home on windows 816:35.07 
Robin_Watts gs renders at the specific resolution internally. So 600dpi. Then it applies the downscale factor to get to 100dpi.16:35.38 
chrisl Ah, I thought it worked the other way round16:35.57 
sicos Normally I used -r100 until I discovered the downscale factor... the result is huge16:36.17 
  Didn't know that would make such a difference16:36.27 
Robin_Watts No, the downscale happens 'post getbits', so the resolution sets what you get out of getbits.16:36.27 
mvrhel_laptop kens: for when you return. with issue 2 I am never getting to write_color_as_process16:36.43 
Robin_Watts sicos: When you are using a downscale factor, we render at 8bpp internally, and then error diffuse down to 1bpp.16:36.52 
  error diffusion gives much nicer results than a simple halftone.16:37.05 
  But 600dpi down 6 is way overkill.16:37.13 
sicos Does it make a huge speed difference?16:37.21 
  use downscaling instead of -r10016:37.31 
Robin_Watts You'll probably do just as well with 300dpi down 3.16:37.31 
  There will be a performance difference, yes.16:37.46 
sicos Robin: I'm still in the trying out phase so I'll keep that in mind.. thanks for the suggestion16:38.03 
Robin_Watts I wouldn't like to predict how huge.16:38.10 
mvrhel_laptop kens: perhaps I am missing some change you have16:38.28 
Robin_Watts 200dpi down by 2 will effectively draw 4 times as many pixels.16:38.29 
  300 down 3 9 times as many pixels.16:38.38 
  600 down 6, 36 times as many pixels.16:38.52 
mvrhel_laptop until then, I will fool with mupdf16:39.04 
Robin_Watts And I have special case code in there for the 2 and 3 case, IIRC.16:39.12 
  So, tor7, how's the chromebook?16:43.36 
chrisl sicos: I can't reproduce the problem on Linux - what are you using to view the tiff?16:43.49 
sicos faststone image viewer16:44.19 
  i'll try the fax viewer16:44.55 
chrisl Okay, I don't know that app, but as long as it wasn't the Windows viewer - it has lots of troubles with tiff16:45.12 
sicos uhm16:45.39 
  seems to be a faststone image viewer problem16:45.49 
  uhm... sorry about that16:45.56 
Robin_Watts sicos: ah, phew.16:46.11 
sicos strange... when I use another tool to produce g4 files they all open fine with faststone16:46.35 
  so I wonder what bit in the header file of the tiff throws faststone image viewer off16:46.56 
chrisl It may be the photometric16:47.12 
  Our output is "Photometric Interpretation: min-is-black"16:47.50 
Robin_Watts henrys: Where are you seeing the 16bit operation in this stuff?16:47.59 
sicos well nevermind... keep up the good work with ghostscript.. it is a fantastic tool16:48.26 
henrys I'm seeing a copy from a byte array to a short array16:48.31 
Robin_Watts henrys: where?16:48.39 
sicos and it sure beats a lott of other tools16:49.09 
chrisl sicos: libtiff comes with some useful tools for getting info from tiffs, if you can find it for Windows16:49.33 
henrys gxclthread.c:4944 near that.16:50.07 
Robin_Watts ok. I was looking in the mono case, and that doesn't use 16 bits.16:51.11 
henrys unsigned short *avgColor 16:51.35 
Robin_Watts henrys: yeah, they are copying the CMYK values into the output and adding them.16:52.26 
  so they are holding 4 lots of 8 bit values added together in each short.16:52.42 
  Then they divide by 4 at the end.16:52.58 
ray_laptop mvrhel_laptop: for RAW_DUMP, should I check "Interleaved" ?16:53.05 
Robin_Watts so it's only 8 bit operation, implemented extremely inefficiently.16:53.12 
mvrhel_laptop ray_laptop: the data is planar not interleaved16:53.25 
Robin_Watts God, that's a horrible piece of code.16:53.41 
mvrhel_laptop ray_laptop: what are you working on?16:53.45 
sicos Robin: I also tried to open the tiff with the "Microsoft office picture viewer" but that one also doesn't like the tiff :-)16:54.02 
ray_laptop mvrhel_laptop: OK. Thanks. Sorry, I forgot to mention that I was asking about the Photoshop settings, but I guess you figured that out16:54.12 
mvrhel_laptop yes16:54.20 
henrys marcosw came by to say sorry he was late and then left apparently ;-)16:55.08 
Robin_Watts ray_laptop: So... this idea of having a 'post process' function seems like a good one to me.16:56.15 
ray_laptop OK, so *finally* got RAW_DUMP to work with cust 532's code16:56.24 
  Robin_Watts: yes, indeed16:56.31 
Robin_Watts It would be a much nicer solution to this, and has scope for other things.16:56.42 
  BUT... I can see that in a lot of cases, people are going to want a guarantee that the post process things are run "in order"16:57.06 
sicos is there any magic downscalefactor formula like 600 downscale 2 for 300 dpi, 400 downscale 2 for 200 dpi and 200 downscale 2 for 100 dpi?16:57.19 
ray_laptop I'm up to the ears with cust 532's pb. Can you suggest what parameters we'd pass when we callout ?16:57.46 
Robin_Watts (for instance, if people are doing say, error diffusion, or they are sending data off via DMA, or they are writing it to a file etc).16:57.47 
  ray_laptop: Sure. I'll put together a proposal.16:58.05 
kens mvrhel_laptop : My mistake, you need to set the DEVICE=ps2write -dPDFUseOldCMS=false16:58.17 
mvrhel_laptop oh16:58.23 
  ok16:58.25 
ray_laptop Robin_Watts: for DMA, they want the bands in order, not when they are finished, which will be arbitrary order16:58.26 
kens dashes off again16:58.35 
Robin_Watts ray_laptop: Right, that's my point.16:58.39 
  So, possibly we'd want an option to ensure that the bands happen 'in order'.16:59.08 
ray_laptop and writing to a file, would need to have the entire page allocated and do *seek* to write whichever band16:59.21 
Robin_Watts Or we could leave it to the function that's called back to wait in turn.16:59.30 
  My point is, that even if the callbacks wait to happen in sequence, it would still be a net win overall, I think.17:00.29 
ray_laptop Robin_Watts: I think that doing DMA or file writing is best left to the main thread, but updating a page image in memory can be done randomly17:00.47 
Robin_Watts as one thread can get on with rendering while the next one is in the callback.17:01.20 
ray_laptop Robin_Watts: it'll be a win if there is more processing than just writing the bands17:01.21 
chrisl sicos: what you mean by "magic"?17:01.42 
Robin_Watts so my question is, should we offer an optional 'in order' guarantee?17:01.58 
ray_laptop Robin_Watts: can JPEG or PNG be compressed as bands ?17:02.27 
Robin_Watts i.e. should the device be able to say "please call this function back after each band, and do so in order".17:02.29 
sicos just the best option between memory usage and speed17:02.35 
Robin_Watts ray_laptop: depending on the settings in use, yes.17:02.37 
sicos I mean memory usage, quality and speed17:02.50 
chrisl sicos: it rather depends what your goal is.17:03.16 
  sicos: there's no magic bullet that's right in all cases17:03.36 
ray_laptop Robin_Watts: having to wait for previous threads means it kills the parallelism17:03.47 
sicos chrisl: good quality for ocring but with good speed17:03.49 
Robin_Watts ray_laptop: It *limits* the parallelism, it doesn't kill it.17:04.04 
sicos chrisl: I use a quadcore server with 8gb of memory to do all the conversion jobs17:04.35 
chrisl sicos: I don't work with any ocr packages. Best I can suggest is to experiment. Personally, I'd think that you'd want fairly hi res output for accurate OCR operation17:05.10 
Robin_Watts sicos: It depends on your input file and the input that the OCR package takes.17:05.16 
ray_laptop Robin_Watts: how so? If thread 1 (the first band) takes longer than thread 2, 3, and 4. then 2, 3 and 4 will have to wait until thread 1 is done and thread 4 has to wait for 1, 2, 3 to finish17:05.25 
  Robin_Watts: plus the threads don't know about each other (currently)17:06.02 
Robin_Watts ray_laptop: Yes. But as soon as the band processing of 1 is finished, that thread can start processing 5, while we do the post band processing of 2.17:06.04 
ray_laptop Robin_Watts: but if the callout post processing is compute intensive, then we don't get to overlap !17:06.56 
tor7 Robin_Watts: absolutely gorgeous!17:06.57 
Robin_Watts so the concurrency is not as smooth as before (i.e. there will be contention), but it's better than nothing.17:07.17 
tor7 Robin_Watts: best screen I've ever had (though obnoxiously shiny, but I can live with that)17:07.21 
  good keyboard, and trackpad is apple quality17:07.30 
Robin_Watts ray_laptop: Indeed.17:07.32 
ray_laptop Robin_Watts: I don't see how it's better than letting the main thread just have it17:07.41 
chrisl sicos: also, I'd have thought that using grayscale instead of halftoned output would be preferable for OCR (if the ocr can take it), but I don't really know.17:07.51 
tor7 going to get a high speed SD-card tomorrow, so I'll see how it does on dual-booting17:07.59 
ray_laptop in order, after the callout has finished17:08.01 
tor7 running crouton to get a chroot:ed ubuntu install works just great though17:08.13 
sebras-hotel tor7: and you'll get me a picture..?17:08.14 
tor7 shame about linux toolkits not really coping with high-dpi screens :(17:08.31 
ray_laptop that way all of the callout processing is ALWAYS in parallel17:08.32 
tor7 sebras-hotel: working on it. one sec.17:08.49 
Robin_Watts ray_laptop: OK, I think you've killed my idea of us offering a 'callback in order' option.17:09.03 
ray_laptop Robin_Watts: I really have to get to work now, however. Glad to talk more later17:09.10 
sicos chrisl: at the moment I first convert a pdf to pnggray and then use victor.dll to convert it to g4 format (that is because i thought ghoscript screwed my tiff file up.. I know better now :-))17:09.13 
  chrisl: But I'm probably going to fix that code now that I know it is a faststone image viewer problem17:09.36 
  chrisl: so it's no more a 2 step conversion.17:09.55 
sebras-hotel tor7: sounds like a nice, square pixel though. :)17:09.59 
chrisl sicos: sure, but I'd have thought the pixel "patterns" of the halftone might pose extra problems for the OCR package.17:10.33 
Robin_Watts sicos: Does the OCR package only accept 1bpp input files?17:11.07 
sicos yes17:11.13 
sebras-hotel tor7: actually if you want to make it easy, you might want to use Line to send it to me...17:11.27 
sicos it want to have ccitt fax 4... so far as I know that is 1bpp17:11.37 
chrisl sicos: oh well, so much for that idea17:11.49 
Robin_Watts sicos: it is. It's a shame that it only takes 1bpp input, cos it's forcing someone to have made decisions about throwing information away already.17:12.18 
sicos don't shoot the messenger :-)17:12.36 
chrisl I still think you'd want high-ish res for best results17:12.57 
Robin_Watts Most scanners output 8bpp data, which would be a much more sensible input to an OCR package as it wouldn't have to cope with dithering etc.17:13.04 
  chrisl: Given that you need 1bpp input, you probably want high res, but with decent error diffusion.17:13.35 
sicos does the tiffscaled device also support antialiasing?17:13.39 
  or is that only possible on png?17:13.45 
Robin_Watts sicos: Antialiasing is the trading of spatial information for color depth information. It's kinda hard to do that when you are going to 1bpp.17:14.17 
  But tiffscaled works in 8bpp internally, then scales down, then error diffuses; so the internal representation (before error diffusion) is antialiased.17:15.03 
sicos but for example if you go to tiff gray scale.. does it then make any difference?17:15.07 
  ok17:15.13 
chrisl And you certainly don't want antialised output for OCR purposes17:15.26 
Robin_Watts chrisl: Unless you have overly high res predithered input.17:15.47 
chrisl I'd assume that you'd want the sharpest defined edges possible for OCR17:16.39 
sicos indeed17:16.45 
Robin_Watts chrisl: Imagine that you are trying to OCR something that's come out of a full color CMYK process with colored text in it.17:17.11 
  but I'll admit that's a corner case.17:17.48 
sebras-hotel tor7: oh! I spy with my little eye, no windows keys! :)17:17.52 
tor7 sebras-hotel: the "caps lock" is by default Super_L ;)17:18.13 
sebras-hotel tor7: even better! :)17:18.26 
  tor7: doesn't even look like it's labeled caps lock.17:18.44 
  labelled!17:18.56 
sicos What I'm trying to find is the best setting possible for ghostscript. I know the output has to be g4. The input file kan be any kind of pdf in anykind of resolution, fully text or just scanned images17:19.08 
sebras-hotel tor7: but when you move that chair, don't unplug the extension cord...17:19.33 
chrisl Robin_Watts: I was thinking more of using the output of a RIP that you can control. I'd have thought something like 600dpi, 1bpp error diffusion halftoned would give the best OCR results.17:19.42 
sebras-hotel leaves for bed, good night artifexians!17:20.06 
Robin_Watts chrisl: Does tiffscaled handle -dDownScaleFactor=1 ? :)17:20.24 
sicos It is an automated proces so there is no man in the middle that can fiddle with the conversion settings17:20.26 
chrisl sebras-hotel: good night17:20.30 
tor7 sebras-hotel: good night!17:20.30 
sicos good night17:20.38 
Robin_Watts sicos: Try: -r600 -dDownScaleFactor=117:20.51 
chrisl Robin_Watts: well, it didn't throw an error.....17:21.04 
mvrhel_laptop kens: so I see 2 issues17:21.08 
sicos sorry forgot one thing.. the resolution has to be 300 dpi :-)17:21.12 
mvrhel_laptop One is that the equivalent profile was not being used with the call to get_link. I will commit that fix17:21.33 
Robin_Watts -r300 -dDownScaleFactor=1 then.17:21.38 
mvrhel_laptop however. that is not the source of the black vs white17:21.47 
Robin_Watts or -r600 -dDownScaleFactor=217:21.49 
chrisl That does indeed seem to work]17:21.52 
mvrhel_laptop kens: the main problem is line 463 in gdevpdfg.c17:22.54 
  the color values in Converted are coming out white17:23.22 
  but the mapping to colors.pure in 463 is not doing what I think you want it to do17:23.41 
chrisl Robin_Watts: I assume -r300 -dDownScaleFactor=1 will be faster.....17:23.52 
Robin_Watts chrisl: Yes.17:25.08 
mvrhel_laptop kens: let me see if I can fix it...17:26.05 
sicos does .. uhm i think to parameter was called renderingthreads .. speed anything up?17:26.09 
Robin_Watts sicos: I doubt it.17:26.39 
chrisl sicos: probably not at 300dpi, no17:26.50 
Robin_Watts renderingthreads will help the rendering time of the doc. It will not help the error diffusion process, and I suspect that is the slowest bit.17:27.10 
sicos and dBandBufferSpace ?17:28.19 
  since i got more then enough of memory in the server17:28.37 
mvrhel_laptop ok. that fixed it.17:29.01 
chrisl sicos: do you know if the text is always pure black, or can it be other colours and tints?17:29.04 
Robin_Watts sicos: If memory is no object use -dMaxBitmap=1000000017:29.07 
mvrhel_laptop you wanted /256 not /255 kens. 17:29.08 
sicos it can be any kind of pdf17:31.21 
  with just scanned color pages in it.. or black and white... it even can be a text based pdf17:31.54 
chrisl Okay, so you do want the error diffusion - if the text had always been pure black, then a quicker halftone solution would be viable17:32.28 
sicos I work at an insurrance company and customers can declare there bills through a web portal. I dont know how there pdf files are generated17:32.30 
Robin_Watts sicos: I would encourage you to get your bosses to get a support contract for gs.17:33.22 
sicos it can be a paper bill that they scan on just a pdf bill they got from for example there dentist17:33.22 
  robin: do you know how much that will cost for a year?17:34.13 
Robin_Watts If you are using it as part of a large commercial enterprise (and you are), it would seem reasonable to ensure you have support.17:34.20 
  offhand, no.17:34.25 
mvrhel_laptop kens: ok clusterpushing a fix17:34.42 
sicos I already tried to look it up on the ghostscript portal but there aren't any prices overthere17:34.53 
Robin_Watts but if you contact sales@artifex.com they can do you a quote.17:34.57 
  sicos: Indeed, we tailor prices to circumstances.17:35.08 
sicos well i'm going to call it a night... I think I asked you enough.. thanks for listening17:36.16 
  I'll send a mail to artifex.. thanks for the tip17:37.05 
Robin_Watts np.17:38.07 
mvrhel_laptop windoze 8.1 update out this friday....17:51.32 
  and VS 2013 comes out in less than 1 month17:53.32 
Robin_Watts mvrhel_laptop: Are you taking orders? :)17:54.23 
  So, you can't code for windows 8.1 without VS 2013. That means a month where no one will be able to use Windows 8.1 - so no change there then! :)17:56.08 
mvrhel_laptop Robin_Watts: Maybe I can bring a copy to the next staff meeting17:56.54 
Robin_Watts mvrhel_laptop: I'm not in the market for the 8.1 update. I never use my copy of windows 8, personally.17:57.29 
  Depending on what VS 2013 brings to the party, it may or may not be worth buying a copy for the company.17:57.58 
mvrhel_laptop true. I will get myself a copy for 8.1 dev. and see what is new18:00.46 
Robin_Watts Do MS offer a VS2012->2013 upgrade?18:01.27 
mvrhel_laptop kens: fix for you problem #2 pushed18:01.30 
  Robin_Watts: not idea18:01.36 
  no diea18:01.39 
  idea18:01.41 
kens mvrhel_laptop : I just got back, thanks, that was quick!18:01.42 
mvrhel_laptop I am eager to get done with gs and fix my mupdf issues...18:02.08 
Robin_Watts I can imagine that people who forked out for VS2012 to do win 8 dev are now going to be very annoyed if they have to fork out again for a .1 revision.18:02.09 
mvrhel_laptop oh 8.1 is free18:02.19 
  dont know about VS201318:02.25 
kens is keen to finish up the colour code18:02.25 
mvrhel_laptop kens: I am hoping to get you V2 profiles before staff meeting18:02.41 
kens That would be cool18:02.48 
mvrhel_laptop but I am going to work on mupdf for a bit now18:02.53 
kens No problem, I have to go back to pdfwrite and the diffs that are produced. Some are progressions some are just slightly different. I need to make sure no more are faults18:03.24 
mvrhel_laptop Robin_Watts: I see what you are saying18:03.30 
  yes that would be annoying18:03.33 
  kens: did you happen to see 69470418:06.36 
kens Hmm, not sure, just a momnet18:06.48 
Robin_Watts http://weblogs.asp.net/lduveau/archive/2013/07/10/visual-studio-2012-2013-and-windows-8-1-apps-clarifications.aspx18:06.55 
mvrhel_laptop I tried to understand in the interpreter why we do the sethalftone when the device is not a halftone device18:07.02 
  but it is not clear to me18:07.09 
Robin_Watts So VS2012 will not let you use the 8.1 additions.18:07.16 
kens mvrhel_laptop : I haven't looked at that bug18:07.22 
Robin_Watts MS really hate their developers, don't they?18:07.31 
kens Presumably we set the halftone because the graphics state requiers that we have one18:07.48 
mvrhel_laptop hmm this does seem like a mess18:08.35 
kens wonders exactly what new functionality there is in windows 8.1 that VS 2012 apps can't target18:08.46 
mvrhel_laptop I have a friend in the VS marketing group. I will have to ask him about this18:08.50 
  window 8.1 has a lot of stuff18:09.03 
  for e.g. native pdf rendering...18:09.11 
  I would be worried though about app creation compatibility between 8 and 8.118:10.33 
  not sure it makes sense for someone to create something for 8.118:10.52 
  but perhaps everyone with 8 will update18:11.06 
Robin_Watts mvrhel_laptop: Well, if the .1 is a free upgrade, ms can hire someone to go round all three of the users houses and update them.18:11.27 
mvrhel_laptop hehe18:11.34 
ray_laptop I wonder how many of the broken / invalid PDF's their native rendering will cope with. And how well they'll handle the funky fill-black then imagemask white problem files we've seen. And the missing fonts. And ... 18:16.56 
  and whether or not they'll let people render into an image file18:17.39 
Robin_Watts ray_laptop: 2 possible ways to do this suggest themselves; a new device function, or a dev spec op.18:18.34 
ray_laptop we should license GS to them so they can import PostScript, and take a step toward killing Acrobat18:18.39 
Robin_Watts A friend just asked me "does VS2013 have new features, like lower case letters?"18:19.46 
ray_laptop Robin_Watts: why not just a pointer in the gx_device_printer * structure. gdev_prn_open inits it to NULL, they just set it before requesting data in 'print_page'18:20.05 
  I don't see a reason we need a spec op or device function18:20.41 
Robin_Watts Do all clist things go through a gx_device_printer ?18:20.58 
ray_laptop Robin_Watts: Not pattern-clist, but we don't do MT rendering for those18:21.29 
kens is off now, I'll get back to the colour code tomorrow Michael, thanks again. Night all18:22.05 
Robin_Watts So I can safely cast dev in clist_render_thread to a gx_device_printer?18:22.16 
  I was thinking that it would be good if this callback would work in both clist and non-clist cases.18:22.55 
mvrhel_laptop bbiaw18:23.08 
Robin_Watts casting from dev to gx_device_printer in clist_render_thread feels very wrong to me.18:27.27 
  ok, so the only way we can ever get into the multi-threaded rendering case is if gdevprn.c has set it up.18:31.44 
ray_laptop Robin_Watts: to make the callback work for non-clist devices, we'd have to add it to gdev_prn_get_bits and gdev_prn_get_bits_rectangle if !PRINTER_IS_CLIST(pdev)18:31.53 
Robin_Watts ray_laptop: Can we add it there and have that do both clist and non clist cases?18:32.47 
ray_laptop at that point we'd call out with whatever data comes from the underlying mem_get_bits_rectangle18:32.52 
  Robin_Watts: no, because those two functions are in the main thread (above the get_bits_rectangle call)18:33.24 
Robin_Watts ok.18:33.38 
  we also need to make it get called in the clist, but not multithread case.18:34.01 
ray_laptop in the non-clist case, there really won't be any parallel processing since everything else for the page is done18:34.29 
  Robin_Watts: yes18:34.40 
Robin_Watts ray_laptop: Right, but it means the device writers don't need to worry about which case they are in.18:35.23 
ray_laptop Robin_Watts: right. I understood your intent and agree18:35.42 
  Robin_Watts: it would be fun to do a clist display device and have the callback update bands on its page buffer :-)18:37.32 
  watch parallel processing in action18:37.49 
Robin_Watts interesting.18:38.00 
  So new printer device proc you reckon.18:39.10 
  s/So/So a/18:39.17 
ray_laptop huh ?18:39.21 
Robin_Watts You reckon the way to do this is to have a new printer device proc?18:39.54 
ray_laptop I was just thinking a *post_processing_callback(...) element in the gx_device_printer struct18:40.06 
Robin_Watts Ah, ok.18:40.15 
ray_laptop I guess it could be buried in the printer_procs18:40.59 
  Robin_Watts: actually, putting it in the gx_printer_device_procs makes sense and is OK with me18:42.41 
Robin_Watts ok.18:42.48 
ray_laptop all you have to do is figure out what params it should have (beyond gx_device_printer *)18:43.47 
Robin_Watts the buffer device, the band number, the number of lines.18:44.21 
ray_laptop Robin_Watts: seems like enough. The buf_device has the info needed to access the band data18:49.10 
Robin_Watts ray_laptop: Yeah.18:49.37 
ray_laptop so the calling function just calls get_bits or get_bits_rectangle on the bdev18:49.50 
  and can cast the gx_device_printer to its device struct to get any info needed for the post processing, including, possibly where to put the results18:51.11 
Robin_Watts I'm having trouble parsing that.18:52.24 
ray_laptop Robin_Watts: where will the data be processed into ?18:52.43 
Robin_Watts ray_laptop: That's device specific.18:53.01 
  The callback can choose to work 'in place' on the buffer device, or it can choose to copy to some other secret buffer that gs knows nothing about (but that it finds from within it's gx_device *)18:53.49 
ray_laptop yes, but where does it get the destination if it needs buffering. Or if it allocs it's buffer, how does it return the pointer ?18:53.54 
Robin_Watts ray_laptop: Right. That should be hidden in the devices own structure.18:54.31 
ray_laptop Robin_Watts: each post_process invocation will need its own buffer.18:54.48 
  it can't just scribble is a shared buffer18:55.15 
  Robin_Watts: how about adding a *result param18:55.44 
Robin_Watts ray_laptop: What would we do with it? I'm against that.18:55.56 
  The customers code allocates a buffer, uses the buffer, and then writes the results back into the buffer device.18:56.22 
  so the caller can read it out as the results of the getbits.18:56.30 
ray_laptop Robin_Watts: but the buffer device type and how it holds its data is opaque18:56.48 
Robin_Watts ray_laptop: It had better not be opaque - the purpose of this post process callback is to work on it.18:57.18 
ray_laptop I'm missing something. In order for the post process to change the data depth or anything else, it CAN'T use the same buffer18:58.23 
  the post_process calls the bdev->procs.get_bits to read from the rendered data in whatever format, but it can't scribble back in there18:59.23 
Robin_Watts ray_laptop: If it's working 'in-place' then it is limited in what it can do, yes.18:59.23 
  ray_laptop: Ah, right. The customers code does NOT get the data using get_bits.18:59.43 
ray_laptop Robin_Watts: but what if the data it wants to create is LARGER than the buffer18:59.47 
Robin_Watts ray_laptop: Then it needs to copy it elsewhere.19:00.00 
  It can allocate any buffers it likes, and then will have to stash those pointers into a list or something accessed via it's device pointer.19:00.40 
ray_laptop Robin_Watts: so how does each post_process thread tell the main thread where it put the data ?19:00.56 
Robin_Watts ray_laptop: It doesn't tell the main thread of ghostscript. It tells the device.19:01.32 
  There will need to be some secret device specific way in which this callback can talk to the "main thread" of the device.19:02.11 
  but that's not our concern.19:02.15 
ray_laptop that's what I meant. The main thread print_page calls get_bits which starts the rendering threads19:02.17 
Robin_Watts right, and the rendering threads call into this function.19:03.14 
  this function is part of the device. It can have any sort of setup it likes to get its results out.19:04.09 
  gs doesn't need to be involved.19:04.26 
ray_laptop but it has to know where the data is when the get_bits returns -- so what ? an array of pointers for each line, or each band or something. We need an example implementation19:04.38 
Robin_Watts ray_laptop: Well, the easiest way to do this would be for the device to allocate a page sized buffer up front.19:05.59 
ray_laptop Robin_Watts: sort of defeats the clist mode19:06.23 
Robin_Watts and then the post process function can map from the rendered image into the page sized buffer.19:06.36 
ray_laptop how about an approach that doesn't need so much memory19:06.43 
  Robin_Watts: I'll mull this over. I have to run an errand. bbiaw19:07.09 
Robin_Watts an array of pointers would be just as much memory as a full sized buffer, right?19:07.17 
ray_laptop Robin_Watts: not one per line, no19:07.40 
Robin_Watts if you're going to have an array of pointers, one per band, presumably by the time that array is fully populated you will have a whole page worth in memory.19:08.48 
  i.e. the same amount of memory as a page buffer would have needed.19:09.01 
ray_laptop oh, I see. how do we know when to free some of the lines (and invalidate the pointer)19:11.03 
Robin_Watts ray_laptop: Device specific.19:11.24 
  gs itself is not involved in anything the device does in the post process phase.19:11.43 
ray_laptop I *really* need to run.19:11.48 
Robin_Watts sure. go. we can talk later/tomorrow.19:11.56 
whoami_ hello19:40.07 
ghostbot niihau19:40.07 
Gigs- I am having a ton of problems trying to build mupdf related to openjpeg19:40.55 
Robin_Watts Gigs-: Are you using the openjpeg that we supply?19:41.11 
Gigs- debian doesn't have libopenjpeg1 apparently, so I did the git submodule thing19:41.19 
Robin_Watts ok.19:41.32 
Gigs- thirdparty/openjpeg doesn't populate, but the -patched one did19:41.32 
  so I changed the reference in Makethird to the other name, but it's still not compiling19:41.48 
Robin_Watts Gigs-: Eh?19:42.00 
  What git revision are you on?19:42.18 
Gigs- Makethird says thirdparty/openjpeg which is an empty dir, there's openjpeg-1.5.0-patched in thirdparty19:42.29 
  I did git reset --hard and then pulled, should be up to date right?19:42.48 
  I didn't see an autogen script so I'm not sure about the makefiles19:42.56 
  nor ./configure for that matter19:43.11 
Robin_Watts Gigs-: Do git log -1.19:43.12 
  and tell me the revision.19:43.21 
Gigs- Tue Oct 15 11:30:37 2013 +0200 commit d246518b3f3f64ba10475e5043c554011a383a1ccommit d246518b3f3f64ba10475e5043c554011a383a1c19:43.31 
  to be honest I could do without openjpeg, jpeg2000 is a nice idea but it's sloooow19:44.14 
  if it's not used internally I'll never use it for an output format19:44.27 
Robin_Watts OK. Now do: git submodule update --init19:44.39 
Gigs- k19:44.42 
  Directory 'thirdparty/jbig2dec' exists, but is neither empty nor a git repository19:44.58 
  I get that19:45.00 
  but the first time I did it, it did openjpeg stuff19:45.07 
Robin_Watts So delete it, and the -patched one, and retry,19:45.19 
Gigs- k19:45.24 
  nothing happened, I don't think git update replaces missing files19:45.49 
Robin_Watts OK. Try completely deleting the thirdparty directory- you haven't got any changed files in there, right ?19:46.27 
Gigs- no19:46.30 
  ok that did it19:46.44 
  it's getting curl and openjpeg19:46.50 
  ah ok my thirdparty/openjpeg directory populated now, weird19:47.30 
  let me try a build19:47.54 
  looks like it's working now, thanks for your help19:48.21 
Robin_Watts np.19:48.28 
whoami_ I would like to accelerate the creation of PDF, you have any ideas? (I use already-dNumRenderingThreads = 2-c 30000000 setvmthreshold)19:52.02 
Robin_Watts whoami_: Our PDFwrite expert signed off about 4 hours ago. You might want to try again tomorrow.19:53.00 
  He works on UK time.19:53.13 
Gigs- I just have one main lingering question about tint transforms from my essay the other day, FunctionType 0 /Size [ 2 ] /Range [ 0 1 0 1 0 1 0 1 ] /Domain [ 0 1 ] (stream) 00 00 00 00 00 80 FF 00>19:54.00 
whoami_ And me French time :)19:54.09 
Robin_Watts Sorry, you're creating pdfs, and you're using -dNumRenderingThreads?19:54.22 
  AIUI, NumRenderingThreads doesn't apply to pdfwrite.19:54.32 
Robin_Watts has to step afk for a while, sorry.19:55.00 
whoami_ yes that accelerate the creation of pdf19:55.11 
Gigs- did it?19:55.16 
  in my tint transform stream, how is it ordered, like C C M M Y Y K K? If that's the case, why is K inverted?19:55.44 
whoami_ Robin_Watts it is in the general framework of a pdf on sending server, then you think that the fastest way to the <strong>customer</strong> that my program sends the ps file and then creates the pdf on the server20:03.06 
Gigs- whoami_: where are the PS files now? Are they dynamically generated?20:07.17 
whoami_ for now I generates pdf with GS / Redmon with a ruby program.20:08.29 
Gigs- where do the source PS come from?20:08.47 
whoami_ From printing of user (Printer => Redmon => Ghostscript => PDF)20:11.10 
Gigs- There are programs to directly let them print to PDF20:12.13 
  cutepdf for example20:12.38 
  it includes a bundled copy of ghostscript that runs on their machine20:12.50 
  I think even redmon can go straight to pdf20:14.13 
whoami_ non malheureusement20:15.07 
Gigs- well there is no need to go to a server anyway20:15.42 
  at least not as PS, you can always send the PDF to a server20:16.32 
  that way all the clients do their own rendering and speed is not a problem20:16.48 
whoami_ the purpose is to have a pdf file on my server (for my personal needs)20:16.58 
Gigs- yeah, I would still render it on the client as they print and then upload the pdf to the server20:18.24 
  especially if you are having speed issues on the server20:18.37 
  raaaayyyy20:18.55 
whoami_ because if the generation of pdf froze programs for several minutes when the pdf are dozens of pages20:19.03 
Gigs- ghoscript really doesn't do parallel20:20.10 
  if you only can handle one at a time you need to redesign your program to be able to run more than one copy of ghostscript20:20.33 
  or install gs on all the clients and rendering it there first20:21.07 
whoami_ I do not understand what you want to do or how or why20:22.09 
  there already GS on my clients20:22.39 
Gigs- so it is the client that is locking up then20:22.59 
  I thought you had the opposite problem20:23.18 
  yes just send the PS to the server and run ghostscript there 20:23.36 
whoami_ It's not the server but the customers who froze when pdf is too large20:24.20 
  it is possible to generate ps file from redmon ?20:26.51 
Gigs- yes but it will take just as long20:27.09 
  set up your server as a print server and use a basic driver on the windows side20:28.20 
  either PCL or PS20:28.27 
  if you use PCL you will need to use ghostpcl20:30.03 
  it will be faster to use a native driver and pretend your server is a standard print server from the client side20:31.34 
whoami_ but will not print secure (The server is on internet)20:32.23 
Gigs- oh, I don't know then.20:32.44 
  I would look at CUPS details if the server is linux20:34.55 
  they can probably help you more20:35.09 
whoami_ customers are on windows so I would have to fight more with samba20:36.37 
Gigs- no from the client perspective it would be a normal print server20:36.54 
whoami_ no from the server20:38.15 
Gigs- https://wiki.archlinux.org/index.php/CUPS_printer_sharing#Between_GNU.2FLinux_and_Windows20:38.26 
  oh the server isn't linux then, well, get another server :)20:38.52 
whoami_ no but I do not want to use cups20:39.12 
  no it's a linux server20:39.42 
  but I think you involved my problem too :)20:41.18 
  thank you for the help I would spend tomorrow thank you20:45.30 
user123 Hi Guys, can anybody provide commercial licensing fees for Ghostscript and muPDF?22:10.09 
tor7 user123: mail sales@artifex.com to enquire about licensing22:31.11 
user123 Thanks tor7, i did. twice. no response.22:31.58 
Robin_Watts user123: Mail them again, and copy me (robin.watts@artifex.com) in and I'll make sure it gets through.22:53.03 
user123 Thanks Robin.22:54.16 
Robin_Watts user123: Scott just got the mail.23:12.19 
  He should respond pretty quick.23:12.25 
  He'll send you a huge list of questions, and just answer them as best you can - the more he understands what you want to do, the more he can tailor the quote to your needs.23:13.00 
user123 Great. Thanks for your help.23:14.15 
Robin_Watts no worries.23:14.25 
  ray_laptop: Hey23:26.11 
  I've run myself into a bit of a dead end here.23:26.37 
SpNg I'm having some rough output along the edges when going from eps -> pngalpha. I have set the text and graphic alpha bits to 4. Are there any other anti aliasing optimizations I can do?23:28.00 
Robin_Watts SpNG: You're probably hitting the limits of what pngalpha can do. In particular stuff plotted through clip regions may not be antialiased well.23:29.00 
  What res are you trying to get out?23:29.12 
SpNg 300 x 30023:29.19 
Robin_Watts Try: using -r900 -dDownScaleFactor=9 -o out.png -sDEVICE=png16m23:29.50 
  Try: using -r900 -dDownScaleFactor=3 -o out.png -sDEVICE=png16m23:29.55 
  sorry.23:29.57 
  the latter one.23:30.01 
SpNg can I get transparency with that output?23:30.08 
  gs -dEPSFitPage -g300x300 -dSAFER -dBATCH -dNOPAUSE -sDEVICE=pngalpha -dGraphicsAlphaBits=4 -dTextAlphaBits=4 -r600 -sOutputFile=out.png in.eps23:30.46 
  that is the command I'm currently using. I will add the DownScaleFactor23:30.57 
  and increase -r23:31.03 
Robin_Watts never tried DownScaleFactor with pngalpha. Not sure.23:31.18 
  Trying it now.23:31.21 
  There is no point in using the AlphaBits with the downscaler.23:31.44 
  ok, I don't think DownScaleFactor works with pngalpha23:32.34 
SpNg hmm yeah the results are not better23:33.29 
  is my best option to output to a larger file then use another program to resize?23:33.45 
Robin_Watts SpNg: Try it and see if it gives you the results you need.23:34.15 
SpNg Robin_Watts: I have tested it, and I can get good results, just one more moving piece. I was hoping to use GS to go from eps to raster each time23:34.51 
Robin_Watts SpNg: Are you building your own gs ?23:38.14 
SpNg Robin_Watts: haha, no way. I just love GS. The more I learn about it, the more I want to use it.23:39.01 
  I'm doing a bunch of work with EPS files23:39.10 
Robin_Watts So you're not building it from source?23:39.17 
ray_laptop Robin_Watts: were you talking to me about your "dead end" (head or bottom)23:39.45 
SpNg Robin_Watts: yes I'm compiling from source23:39.59 
Robin_Watts ray_laptop: Yeah. This postprocess thing had me worried.23:40.20 
  I think I may see a way through now.23:40.31 
ray_laptop SpNg: if you are starting with eps, you may want to use -dEPSCrop or -dEPSFitPage23:41.04 
Robin_Watts The problem is if devices start calling getbits rather than the prn_getbits entries, we might get strange results.23:41.15 
  but I think that's a reasonable limitation.23:41.26 
ray_laptop SpNg: nm. I just saw you have that23:41.31 
SpNg ray_laptop: yeah I'm using that right now. 23:41.35 
  ray_laptop: yeah, I'm just trying to increase the output quality on smaller png and jpg rasters from EPS. 23:42.29 
  any suggestions on resizing software? I have seen ImageMagic, netpbm and GraphicsMagic23:42.51 
Robin_Watts SpNg: I'm just looking to see if I can find a quick solution to do it all in 1.23:43.43 
SpNg Robin_Watts: Thank you. I really appreciate the help!23:44.44 
ray_laptop SpNg: as Robin_Watts pointed out -dGraphicsAlphaBits=4 -dTextAlphaBits=4 are the best we can do. We only do box filter for those, however, not BiCubic23:45.10 
Robin_Watts ray_laptop: I suspect mail going to sales@artifex.com is intermittently going wrong.23:45.20 
  s/wrong/missing/23:45.34 
ray_laptop the raster image postprocessing would allow you to use BiCubic or Gaussian or whatever23:45.49 
Robin_Watts We've had 3 occasions of people coming on here saying that scott hasn't replied, and when I get the mail resent with me copied in, it gets through fine.23:46.01 
ray_laptop Robin_Watts: Maybe Scott gets so much spam that he ignores it23:46.21 
  I'll ask him23:46.31 
Robin_Watts He claims never to have seen them.23:46.31 
  He might be contacting you :)23:46.37 
SpNg ray_laptop: ok good to know23:46.44 
ray_laptop Robin_Watts: don't hesitate to give out his direct email. Also, he gets support@artifex.com email now (AFAIK), so cc support on your response to a potential23:47.39 
  Robin_Watts: what are your concerns with the post_process callout ?23:48.40 
Robin_Watts ray_laptop: Leave it with me. I think I'm happier now.23:49.44 
  If I'm still not happy by the time you arrive tomorrow, we'll discuss it then.23:50.00 
ray_laptop Robin_Watts: I gave the "destination" issue some thought and have sketched out a 'buffer manager' framework for the resutls23:50.17 
  Robin_Watts: something we could use in an example implementation that lets us point out what would be needed (locking, etc) and would allow parallel PNG or JPEG or whatever23:51.39 
Robin_Watts Can't do parallel PNG or JPEG without blocking to ensure the processing is 'in order'.23:52.24 
ray_laptop by 'sketch', I mean a mental picture. Nothing on e-paper yet.23:52.26 
Robin_Watts Each band in a PNG would need to be compressed following on from the last one. Can't restart zlib.23:53.01 
ray_laptop Robin_Watts: OK. Well, maybe parallel TIFF (band == StripSize)23:53.25 
Robin_Watts And unless we start using restart intervals in JPEG, it's a continuous bitstream too :(23:53.33 
ray_laptop cust 531 uses TIFF anyway, so it's a good "example"23:55.01 
  gotta keep the whales happy ;-)23:55.28 
Robin_Watts SpNg: This isn't working out trivially. Try me again in about 15 hours time. I must go to bed now :)23:59.02 
 Forward 1 day (to 2013/10/16)>>> 
ghostscript.com
Search: