IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2014/02/24)2014/02/25 
Robin_Watts Morning mvrhel_laptop 00:03.56 
mvrhel_laptop morning Robin_Watts 00:04.07 
Robin_Watts How's did day 1 go?00:04.14 
mvrhel_laptop we are on a train. getting wifi off of Takane-san's phone00:04.25 
  Day 1 went very well00:04.31 
Robin_Watts excellent.00:05.49 
mvrhel_laptop reading the logs....00:08.13 
Robin_Watts Has there been much interest in SmartOffice?00:20.48 
  Either as the app, or as a printing mechanism for office files?00:21.20 
mvrhel_laptop Robin_Watts: yes. much interest yesterday00:28.25 
  not clear for which application yes00:28.32 
  yet00:28.34 
  we talked about both though00:28.39 
  we are meeting with 2 print groups and 1 app group today00:29.08 
  getting off in 2 stops00:29.26 
  talk to you all later00:29.29 
ray_laptop henrys: you were winking with torscript, but we could call it torjs -- we'd probably get a 'top hit' on that one :-)01:57.03 
  (unlike mujs that seems to have a lot of hits)01:57.48 
sebras tor8: (for the logs) did you also get a mail from someone at github complaining about CRLF in libjs?09:49.32 
jhabjan sebras: I reported this issue... I made Visual Studio 2012 project from libjs... trying to see if this can be used for something...10:02.50 
sebras jhabjan: yes, I know. :)10:09.39 
  jhabjan: no one has really tried compiling it for windows yet.10:10.03 
jhabjan sebras: it compiles well with slight redefinition10:10.46 
sebras jhabjan: yes, I wouldn't expect any major changes being necessary.10:11.04 
  jhabjan: tor8 mentioned possibly looking into making sure it compiles for windows last night.10:11.44 
jhabjan sebras: I can send you visual studio project files if you want..10:14.32 
  actually.. the only thing I made is... I added this to 'jsi.h': http://pastebin.com/siK1uvTT10:14.56 
  change inline to __inline10:15.41 
  and add _CRT_SECURE_NO_WARNINGS into preprocessor definition..10:16.59 
  anyway... the other thing I run into is the regex max state count (which seems to be hardcoded to 10)... or max 10 captures... which fails on complex regex patterns....10:20.03 
paulgardiner tor5, Robin_Watts: text-annotation-creation support on paul/master when you have a moment11:11.13 
Robin_Watts looking.11:13.07 
paulgardiner ta11:13.12 
Robin_Watts So the size is hardwired?11:14.09 
paulgardiner Yeah. It's a fixed icon. Looks pretty much like the one Adobe use.11:14.51 
Robin_Watts speech, not speach11:15.26 
paulgardiner Oops11:15.58 
tor5 paulgardiner: s/spea... oh, I see Robin caught it first :)11:17.03 
Robin_Watts otherwise looks good.11:17.06 
  Zeniko has some fixes too.11:17.16 
paulgardiner Okay great11:17.17 
Robin_Watts And we need to pull in the openjpeg jbig2 changes from gs.11:17.27 
Robin_Watts is off for a run (first in a month+), but I'll look later if neither of you beats me to it.11:17.56 
tor5 Robin_Watts: the three bugfix patches on zeniko's branch LGTM11:20.38 
Robin_Watts back.11:44.17 
  morning mvrhel_laptop 11:44.22 
paulgardiner I'll need someone to explain how we are sharing jbig2 between the projects. Is it a subtree of gs and a submodule of mupdf?11:44.23 
Robin_Watts exactly.11:44.32 
mvrhel_laptop actually good night...11:44.34 
  in a bit11:44.37 
  but good morning to you Robin_Watts 11:44.49 
paulgardiner Okay. Maybe I'm getting it then11:45.06 
Robin_Watts paulgardiner: We commit changes in the gs tree.12:05.29 
  Once a day, a cron job pulls those subtrees out into separate repos.12:05.43 
  We then use those repos as submodules in mupdf.12:05.56 
  Thus the process for a fix is to commit into gs, wait a day, then update the submodule pointer in mupdf to point to the new revision.12:06.18 
  paulgardiner: source/pdf/pdf-appearance.c:1858: warning: unused variable 'obj'12:07.00 
paulgardiner Robin_Watts: okay. I think I've pulled in the change to jbig2 on paulg/master12:07.54 
  Robin_Watts: ah yes. Don't use obj12:08.47 
  I checked that mupdf builds with the jbig2 fix but I didn't summit a cluster test12:09.36 
Robin_Watts well, we'll find out in a mo.12:10.04 
paulgardiner Also fixed the unused var and pushed that fix to paulg/master... but after the jbig2 update which I we might not take on if you are also looking at it.12:11.15 
Robin_Watts I've just pushed your jbig2 update.12:11.32 
paulgardiner Oh okay. Shall I push my little fix for the unused var too, or is there any reason we should wait?12:12.23 
Robin_Watts paulgardiner: I'll grab it and push it with zenikos stuff.12:14.17 
paulgardiner Ta12:14.24 
Robin_Watts Who added pdf_new_obj_from_str ?12:14.33 
  It appears unused.12:14.36 
  oh, it's for sumatra. ok.12:15.26 
  tor8: Forget js. We want this: https://www.youtube.com/watch?v=_P9HqHVPeik12:50.28 
tor8 Robin_Watts: the future is here!12:55.57 
Robin_Watts tor8, paulgardiner: So, I did some work on the pdf operator filtering stuff yesterday.12:59.49 
  I have it so that it removes unnecessary q/Q pairs, avoids repeatedly pushing the same colors etc.13:00.28 
  All marvellously untested of course.13:00.58 
  and now I'm pondering how best to hook it up.13:01.06 
paulgardiner At what stage do we perform this filtering?13:01.27 
Robin_Watts At the moment pdf_run_page_contents_with_usage calls pdf_new_csi.13:01.48 
  Then we call pdf_set_op_processor (or something like that) to set which set of op functions we use.13:02.14 
  at the moment it always sets the "normal" ones, which are the 'pdf_run_BT' etc set.13:02.48 
  The theory is that I can put a different set in there and they will get called instead.13:03.14 
tor8 pdf_run_page_with_operators()?13:04.25 
Robin_Watts Well, there is pdf_run_page_contents and pdf_run_annots13:04.59 
  I was pondering having pdf_process_page_contents.13:05.10 
tor8 I'd make those two wrappers that call your underlying function with the default op table13:05.27 
Robin_Watts and pdf_run_page_contents could call pdf_process_page_contents with a function pointer to set up the defaults.13:05.33 
paulgardiner This seems a bit like the device interface, but at a different level.13:05.47 
tor8 I'd say run/process are a bit too similar in name13:05.50 
Robin_Watts Well, run is just "process" but with the 'run' set of operators.13:06.13 
tor8 Robin_Watts: we don't call the raw pdf_run_page function in very many places13:06.41 
  I believe almost all of our tools call the fz_run_xxx functions instead13:06.53 
  so you could just change pdf_run_xxx to take the operator table as an argument13:07.11 
Robin_Watts tor8: true.13:07.29 
tor8 and change the pdf_run_page shim that fz_run_page calls13:07.31 
paulgardiner So I'm wondering if we should make the things that understands what to do with operators first class object, the same way that the things that understand graphics commands are devices13:07.53 
Robin_Watts The bit I can't see clearly is how we set up this stuff to do nested calls.13:08.07 
tor8 Robin_Watts: a nested call would just pass the table along?13:08.26 
Robin_Watts Hold on, let me put what I've got up for you to look at.13:09.02 
tor8 you could (at the risk of some minor confusion) call the op table pdf_device, or (slightly less confusing) pdf_opdevice?13:09.14 
Robin_Watts OK, pushed.13:11.24 
  pdf-interpret-imp.h has the definitions in.13:12.20 
  Currently the op tables are called pdf_op_processors.13:12.55 
  Because they contain the logic to process the ops.13:13.15 
  but a pdf_opdevice is possible.13:13.25 
  I'm thinking that I could extend pdf_new_csi to take a new argument.13:14.49 
  That argument would be a pointer to a structure.13:14.59 
tor8 op_processor is fine13:15.34 
Robin_Watts That structure would contain a setup function pointer, a void * arg to be passed to that function pointer, and a pointer to the next such structure in the chain.13:15.40 
tor8 Robin_Watts: before looking at the big picture, I don't understand what pdf-op-filter is really doing13:16.57 
paulgardiner If you were going all out for the op_processor way, you might provide one to the run_page run_annot functions instead of a device, and also have a constructor that gives an op processort that drives a device.13:17.03 
Robin_Watts tor8: Are you happy with the run and buffer filters?13:17.40 
paulgardiner So instead of run_page(dev) run_page(op_pro(dev));13:18.17 
  Just a thought.13:18.23 
tor8 pdf_buffer_BDC looks to be missing the '/' when putting the name13:18.27 
sebras tor8: you saw jhabjans messages in the logs..?13:18.34 
tor8 sebras: yes.13:18.40 
sebras tor8: oki, then all is good.13:18.48 
Robin_Watts tor8: oh, probably. This is all marvellously untested.13:18.50 
  I'll push such fixes back in the history when I can test them, thus making it look as if it flew from my brain fully formed :)13:19.28 
  The run (or "normal") filter is just the current status quo refactored into the new form.13:20.07 
tor8 Robin_Watts: I'd wrap csi->op_processor->op_table[op](cs, csi->op_state) in some sort of helper function13:20.20 
  like pdf_run_op(proc, op, state)13:20.29 
  and maybe rename pdf-op-run to pdf-op-rundev?13:20.40 
  or pdf-op-draw13:20.53 
Robin_Watts tor8: Yeah, that might be nice. A static inline.13:21.09 
tor8 Robin_Watts: yeah. definitely for the op-filter which has a hundred such lines13:21.26 
  and it hides the inner guts of the table lookup13:21.41 
Robin_Watts The buffer filter is intended to take the operators it is called with and output them as an operator stream.13:22.14 
  in an fz_buffer.13:22.23 
tor8 Robin_Watts: yeah, a syntax washer13:22.25 
Robin_Watts filter is the bit that actually does the washing.13:22.38 
tor8 and the op-filter that you've pushed is a forwarding no-op processor?13:23.14 
Robin_Watts The initial one is a no op.13:23.25 
  The latest commit on there fleshes it out.13:23.31 
tor8 oh, right. haven't looked at that one yet.13:23.41 
Robin_Watts Whenever it gets a q or a colorspace change or a color change, it puts them into the current gstate.13:23.52 
  and it flushes them 'just in time'.13:24.00 
tor8 buffer the gstate, flush the diff before an op, kind of thing?13:24.09 
Robin_Watts so we avoid qQ with nothing in it.13:24.12 
  exactly.13:24.13 
tor8 you emit q/Q for matrix changes only?13:24.29 
Robin_Watts There is scope for lots more stuff to be washed in the same way (gstates, Tc, Tw etc)13:24.34 
  tor8: No, I always emit them, as long as there is something in there.13:24.53 
  But I never output more Q's than q's.13:25.00 
  And I always emit enough Q's to match the q's at the end.13:25.21 
tor8 right, because in theory you could emit a page without q/Q altogether13:25.28 
  by always setting explicit state13:25.32 
Robin_Watts tor8: No, w and w* break that.13:25.44 
  clipping paths can only be reset by Q.13:26.12 
tor8 hm, right. and there's no way in PDF (as opposed to postscript) to set the matrix directly, only by concatenating13:26.12 
Robin_Watts yeah.13:26.16 
  We could do a pdf_op_flatten_as_much_as_possible13:26.26 
  but this was intended to leave the structure unchanged (as much as possible), just strip out the unnecessary bits.13:26.57 
tor8 Robin_Watts: right.13:27.10 
Robin_Watts We can also have filters that would select just stuff within given BDCs etc.13:27.27 
  So you can say "give me only the stuff on the page marked as being part of the first story".13:27.50 
tor8 Robin_Watts: yeah. having a programmable filter would be pretty sweet.13:28.13 
  and have that hooked into the JNI bindings :)13:28.24 
  or better yet, just do it in javascript (ugh!)13:28.38 
Robin_Watts I've not got quite that advanced in my thinking yet. I'm still thinking about it as a C level thing.13:28.46 
tor8 it would be neat to be able to feed mutool clean a processor filter script on the command line :)13:29.11 
  I had been thinking that Lua bindings would be perfect for this sort of thing13:29.32 
  to do command line level PDF manipulation from a script13:29.57 
  but now we have mujs/occamscript/libjs/whatever-we're-going-to-call it13:30.14 
  anyway, the more immediate question of yours, how to set this stuff up13:30.36 
  I'd be in favor of a complete revamp of how the pdf_run_xxx stuff is called. the api has grown a bit out of control with how many entry points there are13:30.58 
  and I'd also rename pdf-op-run to pdf-op-draw13:31.13 
  "run" is generic and applies to all processors, IMO13:31.23 
Robin_Watts tor8: The attraction of calling it 'run' is that we have "fz_run_page", and hence the runs match up.13:32.53 
  which is why I was tempted to use 'process' for the more general versions, and 'run' for the 'run to fz_device' versions.13:33.39 
  tor8: I'd love to simplify the pdf_run_page_contents_ etc, but it's not immediately trivial to see how.13:34.14 
  The changes in setup that have to happen on starting an XObject etc are all subtly different.13:34.57 
  That's why I ended up with run_annot, run_strream and run_contents entry points in the pdf_op_processor.13:35.28 
  If you can see a way to unify them nicely, I'd be interested.13:35.43 
  tor8, paulgardiner: New version of the commit pushed.15:01.50 
  I've squashed the filter changes into the original commit, and moved fz_device as paulgardiner suggested.15:02.12 
  I'll do that static inline thing now.15:02.42 
paulgardiner Looking good15:13.39 
  Could make pdf_run_annot_with_usage flexible by passing it an op_processor instead of a device (provided op_processors were encapsulated as an object). Would save having to introduce other "run" functions to use different op_processors.15:16.08 
Robin_Watts pdf_run_annot_with_usage is a static, right? Yes. That's where I was thinking of changing stuff.15:16.49 
  I like the idea of changing it to be pdf_process_annot_with_usage.15:17.17 
paulgardiner Yeah.15:17.30 
Robin_Watts pdf_run_... functions would imply the use of the pdf_op_run stuff.15:17.30 
  pdf_process_... functions would imply the use of any pdf_processor given.15:17.45 
paulgardiner yeah, although you could just have one or the other and have the behaviour decided on the basis of the op_processor passed.15:18.45 
Robin_Watts We have some pdf_run_... functions in our external published API already.15:19.27 
paulgardiner Although obviously not perculating up as far as the fz interfaces, as you pointed out15:19.35 
  Oh I see15:19.50 
  process is the general one. run is specific?15:20.06 
Robin_Watts That was my thought, yes.15:20.14 
paulgardiner Nice15:20.19 
henrys 2 minute until the meeting15:28.51 
  Does everyone know they have 30G of google drive because we have a business domain at google?15:30.25 
kens News to me...15:30.33 
ray_laptop just in time :-)15:30.45 
henrys ray_laptop: only missed 2 sentences15:31.09 
ray_laptop (not on logs yet)15:31.43 
marcosw if you have a non-business google account you get 15G of google drive.15:31.51 
henrys Does everyone know they have 30G of google drive because we have a15:32.39 
  business domain at google? (for ray_laptop)15:32.39 
  I updated the workflowy with ghostdocs business.15:32.55 
kens thinks 15G will do for now15:32.57 
ray_laptop I'm not sure what data I want to share with google.15:33.30 
Robin_Watts henrys: Suggestions for other GhostDocs things: 1) Output limited to 565. 2) Lack of ODT support.15:33.53 
ray_laptop Robin_Watts: ODT ?15:34.13 
Robin_Watts Native format for open office/libre office15:34.28 
kens open document thingy15:34.34 
  the opposite of OOXML15:34.41 
henrys Robin_Watts: does that meant the requirement for a defect (modest proposal)15:35.02 
Robin_Watts the goateeless version of ooxml :)15:35.04 
henrys ?15:35.05 
ray_laptop 565 seems archaic15:35.06 
kens What is 565 ?15:35.27 
ray_laptop and totally unacceptable for PPT15:35.38 
Robin_Watts henrys: I don't follow.15:35.41 
ray_laptop kens: I assumed it was 5 bits R 6 G 5 Blue15:36.02 
kens Oh right15:36.09 
Robin_Watts Wasp has the ability to render to a number of different screen depths built in.15:36.18 
  greyscale 8bit, and various 16bit depends (444, 555, 565) etc.15:36.37 
  Last time I looked it didn't support 32bit screen depths.15:36.46 
ray_laptop or 24 ?15:36.57 
Robin_Watts or 24.15:37.05 
  This means that when output is required on 24bit screens, we render to 565 and then convert up on blitting.15:37.32 
  (At least, that's my memory of the situation).15:37.44 
henrys Robin_Watts: do Libre Office, Open Office and MS support ODT?15:37.57 
Robin_Watts It is possible that someone has written 888 plotters since, but I doubt it.15:38.13 
kens I believe all do now15:38.13 
Robin_Watts Libre office and Open office certainly support it. It's their native format.15:38.28 
kens I think MS do as well now15:38.37 
  (if you insist)15:38.42 
henrys right MS was the question.15:38.48 
Robin_Watts I don't know if MS supports it, but I'll believe kens.15:38.52 
kens As I recall MS (grudgingly) added support recently15:39.14 
Robin_Watts henrys: Oh, and 3) UI scaling problems as reported by tor.15:39.41 
henrys where is tor's report?15:40.28 
Robin_Watts here on irc.15:40.34 
  He said that on large screen devices such as his Nexus 10, the text fields were tiny.15:40.58 
  i.e. they weren't scaled with the overall resolution.15:41.20 
ray_laptop I have a lot of lame-o apps on Windows that do that as well.15:42.06 
henrys I think that is more suited for a bug in bugzilla then an entry in the agenda. Then I'll add a link to the agenda to ghostdocs bugs and we'll go through them at the meeting.15:42.13 
Robin_Watts sure.15:42.48 
henrys miles said something about pop up adds but I didn't see anything.15:43.19 
Robin_Watts henrys: There is a "Lite" version of the app. I don't *think* it's ad supported, but...15:43.50 
  it's possible that the store bought version of SO2 advertises SO+?15:44.18 
  but I've not seen it personally.15:44.28 
henrys yeah I have that one and it hasn't displayed an ad yet.15:44.44 
  I only just realized today when looking at the picsel page you meant real 3d with the glasses - I thought it was just some fancy bogus graphics patent or something.15:46.36 
  I see 19 ghostdocs bugs with a simple search I'll add the search link to the agenda.15:48.02 
Robin_Watts no, real 3d with the glasses.15:48.03 
paulgardiner I was involved with the 3d stuff a fair bit15:48.19 
Robin_Watts Also, there are some phones (korean, I believe) that ship with lenticular screens.15:48.22 
  so you get true 3d with no glasses.15:48.44 
  yeah, I fettled Wasp for Denis for the 3d stuff.15:49.09 
  Picsel did a nintendo DS build too. Perhaps they were trying to sell it to Nintendo as something for use with the 3DS?15:50.02 
henrys I'm just going to go through the agenda this time and add/remove stuff please chime in.15:51.40 
marcosw ghostdocs regression testing needs to be on the agenda.15:52.34 
henrys tor8: wow ms took razor15:53.11 
Robin_Watts marcosw: GhostDocs -> Quality reports -> Artifex testing ?15:53.56 
henrys marcosw: thanks15:53.56 
Robin_Watts IF artifex testing isn't regression testing, what is it then?15:54.20 
henrys clarified15:55.17 
Robin_Watts ah, ok.15:56.26 
  henrys: is it worth me contacting Denis to talk about what the 3d patent is, and whether we actually infringe it?15:57.22 
henrys Yes, I'd really like to keep that, now that I know the crazy glasses are involved.15:57.57 
  so where are we with lcms?15:59.01 
marcosw Robin_Watts: regression testing is automated and doesn't involve comparing to known good output, all the ghostdocs testing so far as been comparing to microsoft office generated files by eye.15:59.23 
  I'm suggesting an agenda item to discuss how to implement regression testing.16:00.54 
henrys I guess I'll add the "knock your socks off" prices for greek and cyrillic to the agenda.16:02.06 
Robin_Watts marcosw: Right. I thought we were going to get ATS set up for that.16:02.46 
  http://www.google.com/patents/WO2009122214A3?cl=en <- That's the 3d patent.16:02.54 
chrisl henrys: Is there much for us to discuss on that subject?16:02.57 
Robin_Watts Supposedly the patent is still in "provisional" status. They haven't heard back whether it's been granted or not for over a year.16:03.59 
marcosw Robin_Watts: ATS is the plan, but I think there are details to discuss.16:04.15 
henrys chrisl: to me yes, in particular do we want to release something we think sufficient or do we need to emulate UFST - I think that is worth a discussion16:04.17 
chrisl henrys: Okay, I rather thought you *did* want that, and the only thing remaining was whether we want to spend on it16:04.56 
tor8 henrys: ms? razor?16:05.21 
henrys http://www.asp.net/web-pages/tutorials/basics/2-introduction-to-asp-net-web-programming-using-the-razor-syntax16:05.56 
tor8 henrys: oh... yeah, razor seems a pretty common name16:06.41 
henrys chrisl: yes I do but miles isn't going to pay for all of it I suspect so we need a discussion about an intermediate plan16:07.50 
chrisl henrys: Right, okay.16:08.23 
henrys we are already past the 1/2 hour - so let's adjourn, I'll keep working the agenda for a while.16:09.31 
chrisl Oh, FFS! Windows has just spent ~4 minutes "Preparing to Delete", and now seems to want me to confirm deleting every subdirectory because the top level one is shared :-(16:20.39 
kens isn't there a check box for 'do the same for the next N conflicts' or whatever ?16:21.52 
chrisl Nope16:22.01 
kens Well that's even more crap than usual16:22.14 
chrisl I opened a cygwin shell, and deleted there instead - took seconds16:22.47 
Robin_Watts henrys: So, Denis isn't 100% sure who owns the 3d patent now.16:24.15 
  It's possible it was owned by Picsel at the time of the liquidation.16:24.26 
  which would mean that we could probably get rights to it from the liquidators.16:24.45 
  (on the grounds that they sold us the code etc, they damn well ought to give us the ability to use it)16:25.02 
paulgardiner Don't we already own everything Picsel?16:25.39 
henrys I'll ask miles to talk to the liquidators and I've changed the agenda item.16:26.37 
paulgardiner Although I still have the recollection of Samsung and Picsel having an agreement beyond just Picsel selling some patents to Samsung, that f Picsel went bust again Samsung would get the rest of Picsel's patents.16:27.50 
Robin_Watts paulgardiner: Indeed. We might own the patent without knowing it :)16:27.57 
  paulgardiner: This patent isn't granted yet. It's still provisional.16:28.09 
kens That could keep lawyers in business for years ;-(16:28.32 
Robin_Watts well, if samsung own the patent, then we might be able to get it rolled into the existing agreement.16:28.32 
ray_laptop Robin_Watts: and it's still just 'pending' (provisional) ?16:30.47 
Robin_Watts yes.16:32.06 
chrisl Hmm, apparently our documentation says: "Attempting to generate a device independent Postscript Level 2 is a bad idea. Postscript Level 2 data are device dependent by definition". I reckon we should change that, because it's complete and utter bollocks.......16:32.19 
ray_laptop chrisl: the original uses for ps2write (and our customer uses) WERE for driving printers, NOT 'device independent'. That being said, I think that comment was to address the issues that _some_ things will come out device dependent (at least resolution locked)16:36.43 
kens And I'm busy writing in the bug thread that I'll remove that paragraph from the documentation16:37.18 
ray_laptop when we flatten transparency, or Type3 comes in, we have to use the resolution16:37.25 
kens Indeed, but that doesn't completely relate to a 'device'16:37.46 
  Too high or low a resolution won't fail, it will just be sub-optimal16:38.02 
ray_laptop kens: no, it doesn't. But I think the specific examples should be mentioned.16:38.18 
  kens: and the suggestion that -r### can improve the quality of pre-rendered objects16:39.09 
  oops.16:39.15 
  kens: and the suggestion that -r### can improve the quality of pre-rendered objects16:39.35 
kens SOrry, I missed that, network hiccuped16:39.48 
ray_laptop kens: so I gathered. Did you see my comment that "specific examples should be mentioned." ?16:40.16 
kens Yes, but I don't think there's an exhaustive list, and several switches interact in difficult to deine ways16:40.45 
  OK I have some compiler warnings to look at and the docs to rewrite, but I'm nearly done with this16:41.40 
ray_laptop kens: OK. Maybe just the suggestion that if you know the resolution of the target printer, use -r### to set it to match16:41.50 
kens That's probably the most relevant one16:42.05 
  Too high results in large slow PostScirpt and since the default is 720 that's the most likely16:42.26 
ray_laptop so that pre-rendered or flattened graphics are at a suitable resolution16:42.28 
  kens: ps2write could easily have a different default resolution (say 300) to pdfwrite, right ?16:43.15 
kens Hmm, yes I htink so16:43.24 
  I beleive they have different structures and initialisers16:43.40 
chrisl ray_laptop: (sorry doorbell) "Certain objects may have to be rendered at a device dependent resolution" is a very different implication to "Postscript Level 2 is, by definition, device dependent".16:46.20 
ray_laptop kens: looks like just #define X_DPI and Y_DPI before #including gdevpdfb.h16:47.19 
kens Probably16:47.26 
Robin_Watts tor8: ping17:10.52 
  paulgardiner: ping17:11.00 
  How do we feel about returning structs in mupdf?17:11.11 
  Specifically, how would we feel about having a pdf_processor struct that was a function pointer and a void * argument, and having a function that returned such a struct.17:11.50 
tor8 Robin_Watts: you're the one who doesn't like returning structs. remember fz_point and fz_matrix being returned back before you went all pointery? ;)17:20.55 
  I have absolutely no objections about passing around simple structs as composite values17:21.23 
Robin_Watts I dislike passing structs.17:21.41 
  fz_point is arguable. fz_matrix is bad.17:22.03 
sebras tor8: yo, do you want me to show up one more day and we can try to fix those last remaining TODOs?18:39.01 
zeniko Robin_Watts: paulgardiner: thanks for updating jbig2dec, please don't forget to also update openjpeg18:40.19 
  BTW: openjpeg seems to have been resurrected18:40.35 
sebras zeniko: oh, did you also get a few mails from them today?18:40.54 
zeniko what's your stance on sharing testcases from the two fuzzing runs with them?18:41.12 
  (I've sent them a bunch of JP2 code streams back in June, asking for confidential treatment, and they've been added to their public(?) test repo)18:41.48 
  sebras: more than just a few18:42.02 
Robin_Watts zeniko: The suppliers of the fuzzed files don't want the raw files spread willy nilly across the net, but they have no problem with the extracted test data being shared with the appropriate people.18:42.22 
  so extract the jp2 streams from the pdf code and send that, and we're fine.18:42.50 
  zeniko: Yeah, I plan to look at the opj stuff as soon as I get what I'm doing into reasonable shape.18:43.22 
  zeniko: You may want to watch my repo in case you have thoughts on what I am doing.18:43.42 
t4nk747 hi19:04.57 
ghostbot hello19:04.57 
t4nk747 my problem is regarding android mupdf'19:05.17 
  see this bug Bug 695071 19:05.30 
  have u chkd it19:05.54 
Robin_Watts Hi19:05.57 
ghostbot bonjour19:05.57 
t4nk747 or ching?19:05.57 
  hi robin19:06.06 
Robin_Watts yes, I just closed that bug.19:06.13 
  What version of the MuPDF source are you working from19:06.25 
  ?19:06.27 
t4nk747 but my issue is not solved sir19:06.27 
  1.219:06.33 
  is it ok?19:06.45 
Robin_Watts Well, 1.3 is the latest release.19:06.47 
t4nk747 or 1.3 i should try?19:06.52 
Robin_Watts and we are about to release 1.419:06.55 
t4nk747 yes i know but i hve no idea how to workout easily with 1.3 so19:07.20 
Robin_Watts Certainly we aren't going to go hunting for build bugs in 1.219:07.27 
t4nk747 dat's nice19:07.30 
  but can u tel me one thing19:07.46 
Robin_Watts Is there any particular reason you are still using 1.2?19:07.59 
t4nk747 i have already res_shade.c file in my fitz folder19:08.13 
  so how can it be dying as per your saying19:08.26 
Robin_Watts I don't know.19:08.32 
t4nk747 ok19:08.41 
  so can you tell me how to work with19:08.52 
  1.219:08.54 
  sory 1.319:08.58 
Robin_Watts The smartest way to work is to use git.19:09.02 
  because then you get access to all our fixes as we do them.19:09.15 
t4nk747 ok19:09.22 
Robin_Watts Find a clean directory on your harddrive, and do:19:09.42 
  git clone --recursive git://git.ghostscript.com/mupdf.git19:09.48 
t4nk747 and what is the price if i wants to buy commercial liance19:09.48 
Robin_Watts and that will copy out the latest git repo into a "mupdf" directory.19:10.04 
  You can then get all our updates just by pulling them from us.19:10.22 
  I can't give you a price for the commercial license.19:10.36 
t4nk747 ok..dats nice to heard19:10.39 
  but as i am new i have to first learn about how to import from git19:11.04 
Robin_Watts We tailor make our commercial licenses according to the requirements of the customer, hence there is no "one size fits all" license fee.19:11.06 
t4nk747 r clon from git19:11.10 
Robin_Watts If you mail sales@artifex.com, you can speak to our sales guru, Scott Sackett.19:11.53 
t4nk747 if i require it for 1 year so how much it will cost me19:11.54 
  ok..np19:12.08 
  thanks for de info19:12.14 
Robin_Watts He will mail you back with a huge list of questions, many of which will not apply to you. Basically answer as many of the questions as well as you can. The idea is to give him as many details as possible about what you want to do.19:12.37 
  he will then get back to you with a licensing proposal.19:12.52 
t4nk747 ok..nice to hear19:13.08 
Robin_Watts He's traveling at the moment, so he may not reply instantly. If you don't get a reply within 48 hours though, come back here and ask me.19:13.51 
t4nk747 and please look back if you have any idea to following error19:13.57 
  make: *** No rule to make target `/home/developer/workspace/TestAndroid/jni/../../fitz/res_shade.c', needed by `/home/developer/workspace/TestAndroid/obj/local/armeabi/objs/mupdfcore2/__/__/fitz/res_shade.o'. Stop.19:14.07 
  because i am about to finish19:14.39 
Robin_Watts t4nk747: No. I feel I have been quite clear on this. I am not going to invest time and effort into hunting down a bug in 1.2.19:14.45 
t4nk747 ok19:15.03 
Robin_Watts If the same thing happens with the git code (or 1.3) then I will be more likely to help.19:15.04 
t4nk747 thank u for your time19:15.11 
Robin_Watts no problem.19:15.14 
t4nk747 and nice discussing with you 19:15.22 
  bye...good night...19:15.46 
Robin_Watts tor8, paulgardiner, sebras, zeniko: New patch pushed.19:33.29 
  opinions gratefully received.19:33.39 
sebras Robin_Watts: "ediding" in the commit message19:37.39 
Robin_Watts sebras: Thanks.19:40.05 
sebras Robin_Watts: since you need to update the win32 makefiles to add the new files, what about android/ios/whatever..?19:44.52 
Robin_Watts Yes, I need to update for android.19:45.25 
  I have no clue about ios.19:45.37 
  unix 'just works' as it uses fitz/*.c etc19:45.55 
sebras Robin_Watts: indeed, ain't tor8 clever. ;)19:46.13 
Robin_Watts but I'm anticipating having several more revisions of this until everyone is happy.19:46.28 
  I'm sure that naming alone will be contentious.19:46.54 
sebras Robin_Watts: so the filter set is meant to be used for optimizing the commands in a stream as I understand it..?19:47.57 
Robin_Watts sebras: Yes.19:48.10 
sebras from the commit message the buffer set is really unclear to me.19:48.25 
Robin_Watts The plan is that we could set up a filter one on top of a buffer one.19:48.34 
  Then you process the stream through that, and what ends up in the buffer one is a replacement version of the original stream, but 'washed'.19:49.12 
  Updated commit message.19:56.03 
  paulgardiner: For the logs: tests_private/pdf/PDF_1.7_FTS/fts_19_1908a.pdf seems to be showing an annotation now, when it shouldn't be ?19:58.50 
sebras Robin_Watts: so basically this is a layer of indirect calls to functions that each do whatever each operator is meant to do.19:59.57 
  in the normal rendering case.20:00.02 
  and some specialized optimization things in the filter case.20:00.16 
  how does this affect speed? (if at all)20:00.35 
Robin_Watts In the old code, we used to call: pdf_run_<opname>20:00.46 
  for each operator.20:00.55 
  We now call: op_table[op_number]();20:01.19 
sebras yes and now we get that pointer from an array, yes.20:01.27 
Robin_Watts I would imagine that it's slightly slower, but not noticably so.20:01.39 
  sebras: for the record, would you nod sagely at: http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=096272252c0d00449bb68c7fddecc13ec2cecdd0 please?20:03.13 
sebras Robin_Watts: LGTM20:05.15 
  ok, so I ran mudraw -m pdfref10.pdf in valgrind for 1.2, 1.3 and your version.20:05.49 
  it is actually quicker by 2 seconds, but that may be due to caching perhaps.20:06.15 
  what surprises me is that in 1.2 we used to do 217k alloc/frees for pdfref10.pdf and we now do 735k!20:06.38 
  we also alloc slightly more memory.20:06.50 
  but I can't attribute any of this to your changes if I read my statistics correctly. and that's reassuring.20:07.11 
tor8 sebras: that's a bit unsettling :(20:13.02 
sebras tor8: indeed.20:13.09 
tor8 Robin_Watts: I have a headache, I'll look at your patch tomorrow.20:13.12 
sebras tor8: http://pastebin.com/nhLSWF6k20:13.29 
Robin_Watts tor8: sure.20:14.46 
sebras Robin_Watts: do I read your code correctly if I assume that PDF_OP_MAX is what is causing the execution of free_processor_*()?20:14.48 
Robin_Watts sebras: yes.20:15.19 
  possibly I could put that as a separate entry point now.20:15.37 
  Initially I only had the array.20:15.44 
sebras Robin_Watts: yes, that would be clearar.20:15.49 
Robin_Watts will do that.20:15.54 
sebras bisect awards the price to 08c6320 which together with the necessary 7eddc1c seems to increase the number of malloc() calls by 500k.20:27.56 
Robin_Watts oooh.20:29.15 
sebras Robin_Watts: do you see why?20:30.39 
  Robin_Watts: is that the pdf_new_*() ones that are added by pdf_array_push()?20:31.36 
  that would be my guess.20:32.03 
Robin_Watts OK, so previously we'd lex things and wouldn't turn them into real pdf things.20:33.19 
  now we do.20:33.25 
sebras mm, that's what I think too.20:33.32 
Robin_Watts I *hope* the pdf_array stuff shouldn't need to keep expanding the array as it should just grow once, but there will be more mallocs.20:34.13 
  BUT, I think it's the right thing to do to treat this stuff properly.20:34.27 
sebras as long as we are convinced.20:34.59 
Robin_Watts Well, I'm open to other ideas.20:37.08 
  The old code used to read strings/numbers from the file and call show_space or show_char on them directly.20:37.50 
  That was bad because 1) it didn't let us cope with BT [(blah) 20 (foo) 10.0 Tc (baz)] TJ ET in the same way that Acrobat does.20:39.01 
sebras Robin_Watts: re: your patch, maybe it is wise to wait with introducing filter and buffer until they are used.20:41.34 
  Robin_Watts: i.e. in a separate patch.20:41.35 
  Robin_Watts: don't get me wrong, I wasn't complaining. :)20:43.14 
Robin_Watts sebras: Sure. I can factor them out. But probably people want to see them to understand the purpose of this work.20:45.10 
sebras Robin_Watts: I'd explain that in out-of-band communication.20:45.33 
Robin_Watts internet connection playing up for some reason.20:45.48 
  sebras: I mean it makes sense to have them all in one patch now, but I can refactor before committing if required. Whatever gives the clearest history.20:46.24 
sebras Robin_Watts: I haven't checked each op-implementation for "run", but it look reasonable to me.20:46.33 
Robin_Watts sebras: Tnat's pretty much the existing code :)20:46.59 
sebras Robin_Watts: yup, I know.20:47.12 
  Robin_Watts: so the intent is to provide this layer to be able to introduce optimizations (since the normal "run" path is virtually unchanged).20:48.28 
  maybe you guys have been discussing this earlier today when I wasn't paying attention.20:48.51 
Robin_Watts sebras: In order to do certain things (like bates numbering etc), we need to be able to manipulate operator streams.20:49.44 
  add some operators, remove some etc.20:49.55 
  And we can't do that easily at the moment with the code we have.20:50.08 
  With this stuff we can do it much more easily, as we can ensure that operator streams are 'sane' and that the graphics state hasn't been left in a bonkers state.20:50.42 
henrys hey mvrhel_laptop how goes it?20:52.19 
mvrhel_laptop henrys: hi. good over all. smart office seems to be generating a lot of interest20:53.35 
henrys is it helping us rip wise or do they just want smart office?20:54.31 
mvrhel_laptop well miles has his plan to make it painful to have one without the other. getting into the controller is a difficult change for some of these places. but they all recognize the importance of working with mobile devices for the future and handling a variety of document types20:57.24 
henrys how's takanesan?20:58.23 
mvrhel_laptop good. scott and I went out for sushi with him last night21:02.47 
  off to shower..21:06.38 
henrys see you, good luck !21:06.52 
kens Goodnight all21:07.47 
henrys late night kens bye21:08.13 
kens :-)21:08.17 
  Stella was at a lecture in London21:08.26 
wolever I'm having trouble with -dDownScaleFactor — it doesn't seem to have any effect. Copying the exact example from the docs (gs -sDEVICE=png16m -r600 -dDownScaleFactor=3 -o x.png x.pdf) produces a PNG file with the exact same resolution as the same command without a -dDownScaleFactor21:51.24 
  This is GS 9.0021:51.31 
  Here's a more detailed description: http://stackoverflow.com/q/22027143/7152221:58.10 
mvrhel_laptop off to the trains. we rode 10 yesterday.22:12.54 
 Forward 1 day (to 2014/02/26)>>> 
ghostscript.com
Search: