| <<<Back 1 day (to 2011/11/24) | 2011/11/25 |
kens | Ian sent me this URL this morning: | 09:13.46 |
| http://uk.reuters.com/article/2011/11/24/oukoe-uk-dutch-airport-idUKTRE7AN1I020111124 | 09:13.46 |
chrisl | I suppose it was only a matter of time....... I would have thought there would have been other things for technology to focus on in airports! | 09:19.29 |
kens | :-) | 09:19.39 |
Robin_Watts | There is a strike planned next wednesday by immigration staff. | 10:13.09 |
kens | I know :-( | 10:13.16 |
| It should only affect passport control, I'm hpoing ti won't delay my flight | 10:13.31 |
Robin_Watts | Dunno if that includes security staff or not... I'd allow extra time at the airport. | 10:13.35 |
kens | Not security staff | 10:13.45 |
| Hmm, lots of diffs, time for bmpcmp | 10:35.22 |
Robin_Watts | ADSL is knackered. | 11:14.02 |
| 600kbps != 6Mbps :( | 11:14.11 |
kens | Not good! | 11:14.21 |
Robin_Watts | http://www.webosfrance.com/33-milliards-de-dollars-perdus-dans-webOS-HP-devoile-les-comptes-de-2011_a1117.html | 12:59.39 |
| Must be nice to be able to lose 3.3 billion on a product that you estimate is worth 1/10th of that and still make a profit. | 13:00.16 |
kens | Can't do that often.... | 13:06.18 |
| Anyone know where I can find the regression test file "Bug6901014_launch_leaflet.pdf" ? | 13:55.45 |
alexcher | kens: tests_public/pdf/Bug6901014_launch_leaflet.pdf | 14:00.30 |
Robin_Watts | tor8: ping? | 14:00.45 |
kens | server ? | 14:00.45 |
Robin_Watts | svn+ssh://regression@svn.ghostscript.com/svn/ghostscript/tests/pdf | 14:01.38 |
kens | Hmm, couldn't see it there, will try again thanks | 14:01.56 |
| AH there it is, thanks | 14:04.28 |
tor8 | Robin_Watts: pong | 14:08.54 |
Robin_Watts | Got time to talk about this optional content stuff? | 14:09.09 |
tor8 | sure | 14:09.20 |
Robin_Watts | actually, first off, related thing... You use the magic name '.seen' as a dictionary entry to avoid infinite recursion. | 14:09.57 |
| Could we change that to be /seen ? | 14:10.06 |
| as .seen would be a perfectly reasonable name. | 14:10.20 |
| (wheras you can never have a name that contains a '/'.) | 14:10.50 |
| actually, that would be no good either. | 14:14.32 |
| You can have / in a name by using #xx | 14:14.42 |
| We'd have to use ' seen' (i.e. a leading space) | 14:15.00 |
Robin_Watts | wonders if I've scared tor8 off... | 14:15.56 |
chrisl | Robin_Watts: what about "%seen" | 14:16.17 |
Robin_Watts | Even ' seen' is no good :( | 14:16.59 |
tor8 | Robin_Watts: we can change to whatever you think is better. The . prefix isn't used by anything in the PDF spec so should be safe, or at least that was my reasoning. | 14:17.02 |
| I was going by how ghostscript prefixes custom operators with a . | 14:17.22 |
Robin_Watts | According to my spec "any char except null may be included in a name by writing it's 2 digit hex code". | 14:17.31 |
tor8 | yes, but is it used in any meaningful way? | 14:17.44 |
| i.e. do we get any actual collisions | 14:17.54 |
Robin_Watts | It's no biggy, but I was thinking that if there was a safe char we should use it. | 14:18.05 |
| but there doesn't look to be :( | 14:18.10 |
kens | I think any character is possible | 14:18.18 |
tor8 | doesn't seem to be, with the # escape anything can be | 14:18.20 |
kens | But its a very rare usage | 14:18.23 |
Robin_Watts | Also, I just spotted an interesting thing; "Note: The token / ( a slash followed by no regular characters) is a valid name" | 14:18.43 |
chrisl | That comes up quite regularly :-( | 14:19.15 |
Robin_Watts | So our use of fz_to_name(obj) returning "" for things that aren't names might potentially clash. | 14:19.33 |
| ok, but all of that was just an aside. | 14:20.09 |
| I'm thinking that to do optional content properly, I need to look at the OCProperties when we open a pdf. | 14:20.58 |
sebras | Robin_Watts: aren't you supposed to test object existance with fz_is_*()? | 14:21.07 |
Robin_Watts | sebras: Yes, but in many places we don't we cast to fz_to_name and strcmp with it, on the grounds that it couldn't possibly match "" :) | 14:21.53 |
kens | Empty names ? | 14:22.17 |
Robin_Watts | and then I'd need to run through setting a '.visible' flag in the OCGs. | 14:22.51 |
tor8 | Robin_Watts: yeah, but that's mostly just providing a non-crashing default value when accessing a non-existing entry | 14:22.52 |
sebras | tor8: or a completely bogus one... | 14:23.21 |
Robin_Watts | brb | 14:23.37 |
tor8 | Robin_Watts: hm, the .seen flags are (I believe) temporary. they should be removed after the transparency scan has finished. | 14:23.45 |
sebras | tor8: e.g. when you expect a string but get an object reference. | 14:23.46 |
| tor8: isn't there something similar to .seen in the pagetree nodes? | 14:24.23 |
tor8 | Robin_Watts: I'm just concerned about what happens with pdfclean or anyone else saving the file back out | 14:24.26 |
| sebras: yeah, there too :) | 14:24.32 |
| both places to stop recursion cycles | 14:24.47 |
| we could add a flag to the fz_obj dictionary object and not (ab)use the dictionary entries | 14:25.19 |
| Robin_Watts: you're talking about OCG dictionaries? I'm a bit fuzzy about how they're specified. | 14:25.56 |
| are they like xobjects at all? | 14:26.01 |
| would it make sense to create a struct for them and stick that in the pdf_xref or pdf_store? | 14:26.30 |
Robin_Watts | tor8: The root object has an OCProperties dictionary. | 14:27.58 |
| That contains entries 'OCGs' (an array of indirect refs to all the OCGs in the document)... | 14:28.49 |
| 'D' (a dictionary that contains a description on which ones are on/off by default) | 14:29.10 |
| 'Configs' (an optional dictionary that contains other 'D' like dictionaries) | 14:29.35 |
| While we are rendering, we can hit references to OCGs either on BDC things, or on xobjects. | 14:30.28 |
tor8 | right. | 14:30.42 |
Robin_Watts | (or those references might be to OCMD's, which are basically a boolean combination of references to OCGs) | 14:31.14 |
tor8 | so a description of what is what and visible or not in the root object, then named references to those descriptions from the actual content | 14:31.16 |
Robin_Watts | Right. | 14:31.21 |
| So I need to decide while rendering whether a given OCG is on or off. | 14:31.40 |
tor8 | I'd suggest parsing up a pdf_ocg_descriptor (make up a better name) and keep a linked list of those structs in the pdf_xref -- or a function to look it up on the fly | 14:32.21 |
Robin_Watts | and that either means tracking back into the root and drilling down every time, or it means me preloading the dictionary objects with '.hidden' = 0 or 1. | 14:32.24 |
tor8 | how do you determine visibility when running the page? | 14:32.58 |
| like the current 'target' selector? | 14:33.06 |
Robin_Watts | tor8: The 'target' thing tells me whether an OCG is ever applicable to the given rendering mode. | 14:33.40 |
| For instance, OCGs can be marked to say they are for viewing or for design. | 14:33.59 |
tor8 | right. | 14:34.05 |
Robin_Watts | But whether they are visible or not after that depends on the 'state' determined for them in the OCProperties thing. | 14:34.35 |
| I could do as you say, and make a pdf_ocg_descriptor, which lists all the object numbers for each OCG. | 14:35.43 |
| but then I need to go from dictionary to object number. That should be doable, right ? | 14:36.19 |
tor8 | how are the OCGs referenced in the BMC and XObjects? | 14:38.59 |
| by number or by name? | 14:39.03 |
Robin_Watts | By name. | 14:39.09 |
tor8 | start by implementing pdf_is_ocg_visible() using the drill-down approach and we can think about speeding it up later? | 14:39.45 |
Robin_Watts | If I have an array full of indirect objects, and I 'fz_array_gets' the first one - I get an indirect object back. | 14:45.49 |
| If I then resolve that indirect object, does the obj change type to be the resolved thing? | 14:46.15 |
| no, doesn't look like it does. | 14:46.58 |
| So if I have an array that I know is going to be full of indirect objects, then I should be OK to look up and get the obj/gen numbers. | 14:47.28 |
| OK. I have a plan, I think. | 14:47.40 |
tor8 | yes. if you have the indirect reference fz_obj you can get the number out | 14:50.13 |
| if you manually resolve it, you lose that information. | 14:50.41 |
Robin_Watts | Right. In my pdf reader, resolving once meant that the DAG of objects in memory resolved too, so you'd lose it. | 14:51.22 |
tor8 | how did that work with cyclic references? | 14:52.05 |
Robin_Watts | OK, so it wasn't a DAG :) | 14:52.20 |
| DG | 14:52.28 |
tor8 | I opted for automatic resolving on use in mupdf, but at first I required manual resolving of each individual reference (and that was painful!) | 14:52.47 |
Robin_Watts | tor8: yes. It's extremely interesting to use mupdf. The parallel evolution of it is quite striking :) | 14:53.18 |
tor8 | :) | 14:53.35 |
alexcher | Who knows why txtwrite device is not included in Linux build by default? | 15:13.29 |
kens | Probably my fault, I guess I forgto to update the build for Linux | 15:13.49 |
| Feel free to add it | 15:13.59 |
alexcher | kens: OK | 15:14.11 |
tor8 | Robin_Watts: ancient history -- http://ghostscript.com/pipermail/fitz-dev/2003-December/000052.html | 15:40.13 |
| about to be undone! | 15:40.19 |
Robin_Watts | That was when you removed the explicit context? :) | 15:41.26 |
malc_ | tor8: lo.. if systerm monitor to be believed preview doesn't memory usage is _very_ modest in a scenario i outlined yesterday | 15:45.35 |
tor8 | who knows, maybe they're hiding it all in opengl textures? ;) | 15:46.22 |
| regardless, apple's pdf engine is very fast! | 15:46.42 |
malc_ | yep.. they must be doing something right.. bastards | 15:47.10 |
| still dog slow here on ppc, so i can not complain really | 15:47.21 |
Robin_Watts | tor8: Sucess. | 16:11.08 |
| or Success, even :) | 16:11.13 |
| I have http://www.creepingfog.com/grrr/Invite.pdf rendering correctly. | 16:11.50 |
| Interesting file :) | 16:12.01 |
| I believe we should not be setting Intent ourselves; it should come from the Intent field in the Optional Content Configuration Dictionary. | 16:16.08 |
| (which should always be 'View' for the default one) | 16:16.17 |
| We should set 'event' though (View, Export, Print) | 16:17.53 |
| tor8: What's the lifespan of an fz_obj ? | 16:18.53 |
| Valid until the file is closed? or can it be thrown away sooner ? | 16:19.10 |
tor8 | Robin_Watts: it varies :) | 16:19.22 |
| I believe at the moment it's until the file is closed (but in theory it could get trashed at any moment by pdf_flush_xref{ | 16:20.05 |
| ) | 16:20.06 |
| if you want to save it in a struct to hold on to it past the lifetime of the current function, use fz_keep_obj | 16:20.30 |
Robin_Watts | Right, thanks. | 16:23.40 |
malc_ | tor8: http://www.agner.org/optimize/instruction_tables.pdf the page numbers in outline are off by one | 17:07.08 |
| no, sorry. | 17:18.50 |
Robin_Watts | Morning henrys. Nice thanksgiving? | 17:19.10 |
henrys | yes it was very nice. Ate a lot. | 17:41.51 |
kens | tor8 what are your flight plans ? Not going through Heathrow on Wednesday I hope ? | 17:42.33 |
henrys | wow this month went fast - meeting time already! | 17:43.08 |
kens | agenda time :-) | 17:43.33 |
henrys | sigh | 17:44.14 |
alexcher | kens: tdev->DebugFile = fopen("/temp/txtw_dbg.txt", "wb+"); fails and causes SEGV later. | 17:44.54 |
kens | OK remove it then, its only for debugging | 17:45.25 |
alexcher | kens: I'll put the affected parts under #ifdef TRACE_TXTWRITE | 17:47.29 |
kens | OK | 17:48.08 |
| Shuoldn't you be on vacation today Alex ? | 17:48.23 |
alexcher | kens: My wife is watching children. It;s time to work. | 17:50.28 |
kens | is off now, goodnight all | 17:59.35 |
henrys | goodnight kens | 17:59.44 |
| I'll be in and out today mosty out... | 18:00.00 |
tor8 | kens: going through heathrow on wednesday indeed! | 18:09.43 |
| at least I don't have to go through border control, but who knows what mayhem the chaos will cause :( | 18:10.06 |
Robin_Watts | tor8: The worry will be that they might hold people on the planes. | 18:13.22 |
| tor8: The file I gave above would be a good one to add to the 'sane' set. | 18:15.43 |
malc_ | tor8: still here? | 18:19.05 |
Robin_Watts | tor8: patch pushed. | 18:23.43 |
| tor8: hold on... | 18:30.50 |
tor8 | Robin_Watts: or cancel the flights... | 18:38.20 |
Robin_Watts | tor8: Or reroute the plane to Paris or something stupid. | 18:38.57 |
| You could call the airline and ask about going on tuesday instead? | 18:39.20 |
tor8 | I'll need to check with Miles about accomodations then | 18:39.53 |
Robin_Watts | Frankly, I'd get yourself to Miami first, and worry about hotel rooms later. | 18:40.15 |
| At worst you'll need to stay somewhere else for a night. | 18:40.25 |
tor8 | "Your flights are currently planned to operate normally, although they may be subject to disruption or cancellation." | 18:41.37 |
Robin_Watts | tor8: I've just pushed a merge of master into context to my repo. | 19:44.12 |
| tor8: Virgin Atlantic and BA have said they will allow passengers to change their flights free of charge. | 19:59.10 |
| Apparently passengers may be held on aircraft for up to 12 hours!!!! | 19:59.29 |
| Come on Tuesday mate. Even if you have to sleep on the beach... | 19:59.46 |
tor8 | Robin_Watts: yeah, probably the best idea. I'm looking at the rebooking page now. | 20:14.04 |
kens | Virgin page says rebooking for flights due to land, am about to try the helpline | 20:14.21 |
Robin_Watts | tor8: Who are you with? | 20:15.03 |
tor8 | BA | 20:15.17 |
| they've got a good web site at least :) | 20:15.23 |
kens | Virgin say all flights are due ot take off, no cancellations. FOC rebooking is for inbound flilghts only at the moment at least | 20:19.25 |
| ANyway, goodnight folks, again | 20:21.14 |
tor8 | ugh, they don't give me the option of the mid-morning flight, only the wee hours one :( | 20:22.10 |
| hm, I wonder if they'll let me fly home on a saturday instead ;) | 20:23.44 |
| nope... | 20:26.29 |
| Robin_Watts: oh lovely. on all but one flight I get "temporary fault, please try again" and on the one I can continue on it's "The flight selected has sold out whilst you have been completing your transaction. Sorry, please try another BA flight." | 20:35.33 |
| looks like I'll have to try again in a few hours, or give them a call tomorrow morning | 20:41.26 |
| Robin_Watts: OCG commit pushed | 21:11.23 |
henrys | Robin_Watts:the package arrived | 21:18.21 |
| Forward 1 day (to 2011/11/26)>>> | |