IRC Logs

Log of #ghostscript at irc.freenode.net.

Search:
 <<<Back 1 day (to 2013/04/07)2013/04/08 
mvdan sebras, Robin_Watts: Let me know if you get one and we'll add it.05:25.42 
soo Hi all, I was building mupdf for android. I met with an error. When I used ndk-build, am getting command not found08:05.43 
mvdan soo: make sure the ndk is installed and that it is in your PATH08:27.00 
kens Robin_Watts : ping me when you read the logs please08:43.00 
Robin_Watts kens: I'm here.09:14.22 
kens Hi Robin_Watts bmpcmp seems to be broken on my last run09:14.37 
  It says 'Unrecognized image type' for all the results09:15.05 
  But the image name seems 'odd'09:15.20 
  bmpcmp: /dev/fd/62: Unrecognized image type09:15.42 
Robin_Watts /dev/fd/?? That's normal09:15.48 
kens all teh filenames are the same09:15.52 
Robin_Watts It is invoked using pipes.09:15.57 
kens Oh, OK09:16.03 
  THere were only 21 differences, but they all failed with the same error09:16.20 
  sigh perfect time for a network gliitch...09:17.21 
Robin_Watts I haven't touched bmpcmp in ages.09:17.48 
kens No I thought not, but it has been a while since I last used it.09:18.06 
  Maybe I shoudl just try again09:18.11 
Robin_Watts Have you tried turning it on and off again? :)09:18.54 
kens :-) I'll schedule a new run in a second, just getting one fo the test files.09:19.12 
  I wonder why these FTS files are so big, the pdfwrite output is nearly an order of magnitude smaller, and visually identical09:21.12 
  Hmm, no bmpcmp failed again, exactly the same symptoms09:28.00 
  Well I can do this by hand since there are so few files09:28.51 
Robin_Watts kens: Looking at the results, I should expect to see lots of blah.pdf.ppmraw.72.0.{new,baseline}.gz files.09:44.47 
  I see 7 .baseline files and 11 .new files.09:45.09 
kens Hmm, so the cluster broke ?09:45.23 
Robin_Watts So it looks like the cluster is not collecting all the files.09:45.38 
kens Maybe Marcosw changed something09:45.45 
Robin_Watts Either that or something in your code change is causing the file collections to fail.09:46.16 
kens Hard to see how it could be me09:46.28 
Robin_Watts I wonder if there is a file size limit or something.09:53.17 
kens THe files shuldn't be too big and there aren't that many09:53.32 
  chrisl ping10:29.04 
chrisl_r61 kens: pong10:29.11 
kens bit puzzled by the PDF-specific widthshow and awidthshow10:29.27 
chrisl_r61 Erm, okay, I'll need to try to remember what I did!10:29.55 
kens How can I differentiate between a PDF file, using a 2-byte CIDFont, which has word spacing and one which uses a widsthsow with a specific value of 0x0032 ?10:30.15 
  It looks like all text in PDF uses either widthshow or awidthshow from teh PDF interpreter10:30.49 
chrisl_r61 Text in a PDF ought to use .pdfawidthshow/.pdfwidthshow10:32.34 
kens Yes, that's what I mean, but those become effectively either a widthshow or awidthshow10:32.53 
  WIth a 'single_byte_space' set in the text enumerator10:33.07 
chrisl_r61 kens: yes10:33.33 
kens OK so if I get a string containing a 'space' character (0x0032) how can I tell if teh word spacing should be applied, or if the specific width being supplied hsould be used ?10:34.38 
  I could be confused here, this is a very tanl;ed ball of string I'm following10:34.52 
chrisl_r61 Give me a sec, I can't remember where we actually apply the extra spacing.....10:35.18 
kens gxchar.c10:35.36 
  show_move()10:35.43 
  line 21010:35.54 
  Actually I think I am coinfusing myself10:36.22 
chrisl_r61 Right, fstack.depth tells you whether more than one byte was used in the decoding10:36.52 
kens Hmm, won't help me in pdfwrite :-)10:37.12 
chrisl_r61 pdfwrite gets the show enum doesn't it?10:37.36 
kens I think its a text enum10:37.47 
  THat may superset a show enum10:37.56 
chrisl_r61 It should still have the font stack stuff in there10:38.05 
kens Yes, possibly.10:38.23 
  I may need to go and think about this....10:38.32 
  If I never apply the word spacing when calculating the theoretical current point, then several files get better, but one gets a lot worse.10:39.25 
  So obviously I do need to apply it in that case.10:39.36 
  I'll look at the fotn thingy10:40.12 
chrisl_r61 Unfortunately (at least in the non-pdfwrite case), by the time we get there, the text buffer pointers have all been moved on so we can't use those to tell how long the character code was.10:40.39 
kens ok ITS THE VALUE OF PTE->TEXT.SPACE.S_CHAR THAT INTERESTS ME, i NEED TO KNOW IF THAT IS A SINGLE BYTE OR NOT10:41.12 
  sorry, caps lock key10:41.23 
chrisl_r61 There's no direct way of knowing that, as far I could tell, hence using the fstack.depth value10:42.23 
kens right, I guess its back to snark hunting10:42.35 
soo Hi all,I was trying to build mupdf for android. After much struggling I was able to do something. But inside libs/armeabi and armeabi am not seeing any.so files. All I can find was a gdb.setup and gdbserver. Can anyone help me!10:42.47 
kens I was hoping you'd already done all this :-)10:42.51 
chrisl_r61 So why can't you use fstack.depth?10:42.55 
kens Mayeb I can, Ihaven't debugged that far10:43.08 
  fstack.depth always seems to be 110:46.38 
  Its 1 in the cases where I don't want to add the spacing and also (I think) in the cases where I do :-(10:48.05 
chrisl_r61 Hmmm, I wonder it's just a coincidence that it works in the non-pdfwrite case10:48.17 
kens Not sure, I'm going to keep looking, this file has multiple fonts, so its not the best test case. I could be looking at the wrong font10:48.47 
Robin_Watts soo: Follow the instructions in ReadMe.txt. If you get stuck, tell us exactly where you got stuck.10:49.32 
chrisl_r61 kens: the other option would be to add a "length" parameter to the enumerator - I didn't do that because I *thought* the fstack was sufficient.10:50.45 
kens I'm kind of puzzled by how we even get the space character....10:51.15 
  Its just a parameter that gets passed in10:51.27 
chrisl_r61 You mean the space char code?10:51.56 
kens Yes10:52.04 
  THat's what I need to know if its 2 bytes or 110:52.14 
  If its 2 bytes I can match it, if not then I can't10:52.25 
  (I already know how many bytes the character used)10:52.38 
chrisl_r61 If you know how many bytes the character used, that's all you need10:53.00 
kens I don't htink so, I could bw rong though10:53.17 
  I know if the font is composite (2 bytes)10:53.28 
  But thst doesn't seem to help10:53.40 
chrisl_r61 Well, you have the character code, and the number of bytes used to define the character code, that's all you need10:53.50 
kens internet having a bad day again....10:55.13 
soo robin: I followed the instructions and then I was getting an error from ndk like command not found for ndk-build10:55.18 
kens I think I need to go look at the number of bytes in the encoding10:55.27 
Robin_Watts Soo: You need to give me the exact command, and the exact error.10:56.31 
soo robin: so I searched and found that this latest version of ndk doesnt need cygwin. So I navigated to android folder in mupdf source and invoked ndk build10:56.38 
Robin_Watts ok.10:57.05 
soo robin: there was an error during this compilation: mupdfcore <= pdf_cmap_table.c10:58.25 
chrisl_r61 kens: "Note: Word spacing is applied to every occurrence of the single-byte character code 32 in a string when using a simple font or a composite font that defines code 32 as a single-byte code. It does not apply to occurrences of the byte value 32 in multiple-byte codes."10:59.25 
kens Yes, I read that10:59.34 
chrisl_r61 I interpret that to mean what's read from the string10:59.44 
kens I'm looking at my test file in some puzzlement10:59.44 
Robin_Watts soo: Am I just supposed to guess what the error might be?10:59.53 
kens I have a test file which has a Tw value, has text which inclueds 0x0032 and which the word spacing does not seem to be applied.11:00.18 
  I'm checking because that sounds wrong....11:00.31 
soo jni/../. ./pdf/pdf_cmap_table.c:5:35: fatal error: . ./generated/cmap_cns.h: No such file or directory11:00.31 
Robin_Watts Soo: You haven't followed the instructions then.11:00.54 
  Item 10 in the list.11:01.09 
chrisl_r61 kens: if the strings contains 0x0032 then word spacing shouldn't be applied11:01.24 
soo robin:sorry mate, as you might have known by now., am typing in all these errors from my tablet device. So its taking some time11:01.54 
kens chrisl I htought it should11:02.08 
chrisl_r61 0x0032 is two bytes11:02.30 
kens Or do you mean we never apply word spacing to mutliple bytes ?11:02.33 
  I need to finish reducing my other test file....11:02.53 
chrisl_r61 Yes, we *never* apply it to multiple bytes11:02.55 
  "It does not apply to occurrences of the byte value 32 in multiple-byte codes"11:03.06 
kens RIght and that works for my nice simple case, but not fot the complex case, I need to reduce that one, its too hard to investigate.11:03.34 
  Leave it with me for a bit11:03.40 
chrisl_r61 kens: is the rendered output correct?11:04.00 
kens In all cases, yes11:04.08 
  Believe it or not I am making progress with this one, I just need to get the logic right11:05.03 
soo robin: yes, but as I said, something wrong happened when I did ndk-build from cygwin window. So I invoked it directly as the current ndk version helps to do that11:05.58 
chrisl_r61 kens: TBH, I wonder if adding some explicit method to know the length of the character code wouldn't be a good idea11:06.38 
kens Well pdfwrite does its own decoding....11:06.54 
chrisl_r61 Of course it does.....11:07.04 
Robin_Watts soo: so, something went wrong early on in the instructions, so you decided to skip all the later steps too? You need to perform step 10.11:07.12 
kens Typical, the file contains 2 font definitions, one is a CIDFtn the other is a type 011:07.42 
  Looks like the type 0 is indeed a single byte for 0x2011:08.28 
  ah, single_byte_space is 0 :-)11:09.14 
chrisl_r61 Oh, that's not ideal....11:09.41 
kens Odd, certainly11:09.58 
chrisl_r61 Does it not come through pdf(a)widthdhow, then?11:10.16 
kens Not sure, I had removed those breakpoints, I'm checking now11:10.31 
chrisl_r61 Or maybe pdfwrite just doesn't know about the additional entry in the enum?11:10.56 
soo robin: make generate is a command or something? where can I run that from?11:11.01 
kens Ah in fact I hadn't removed those breakpoints, so no it doesn't come through there, presumably because its not a cidfont11:11.15 
  Its a type0 font11:11.31 
Robin_Watts soo: If you're not using cygwin, (or a unix machine) then you can't use make generate.11:12.22 
kens THe font definition has no /W entries so no overrides11:12.26 
  Oops no I take that back11:12.38 
Robin_Watts You can use the standard MSVC project to build mupdf for windows.11:12.47 
soo robin:ok11:12.59 
Robin_Watts That will build the generated directory as required.11:13.00 
soo robin: i have to run this command inside cygwin or mupdf/android11:14.21 
Robin_Watts Open a cygwin window.11:15.00 
  change to mupdf/android11:15.04 
  make generated11:15.07 
soo robin: thnx, I'll remember these11:15.59 
kens chrisl So I get to the point I'm looking at, it 'looks like' there is a single byte encoding in the CMap, but fstack->depth is 1 and single_byte_space is also 1. I need to figure out why this is the case. I suspect its because pdfwrite calls the font decoding procedure directly itself. RIght now I'm going to have some lunch and let it stew for a minute. At least I now know where to look.11:29.37 
  chrisl Aha! and there it is the CMap has 0x20 to 0x7e mapped as single byte encodings, 2-byte encodings start at 0x8111:31.11 
  Hmm in fact there are several single byte ranges, but that's OK I know why it should be applying the word spacing now.11:31.55 
  THis is a horrible kludge in the PDF spec :-(11:32.07 
kens lunches11:32.13 
paulgardiner Robin_Watts: cluster tests no longer seem to display output on stderr, as we used to use to determine which Javascript DOM objects we needed to support, for example.12:23.30 
Robin_Watts paulgardiner: That should either be in the .out or the .log file, no?12:24.03 
  log files have output in.12:25.40 
paulgardiner Hmmm, now it seems to be in the logs, whereas a moment ago not. Does it need to time afger the run to be collected?12:25.48 
Robin_Watts Alert MuPDF: The value entered does not match the format of the field [ Phone Daytime ]Alert MuPDF: The value entered does not match the format of the field [ Phone Daytime ]Alert MuPDF: The value entered does not match the format of the field [ Phone Evening 1 ]Alert MuPDF: The value entered does not match the format of the field [ Phone Evening 1 ]Alert MuPDF: The value entered does not...12:25.54 
  ...match the format of the field [ Fax ]Alert MuPDF: The value entered does not match the format of the field [ Fax ]2.85 0.01 0:07.07 40%12:25.55 
  paulgardiner: It shouldn't do.12:26.11 
  but caching etc ?12:26.19 
paulgardiner Could be caching I guess12:27.01 
Robin_Watts paulgardiner: Currently, mupdf doesn't seem to work on armeabi devices.12:27.26 
  only on armeabi-v7a devices.12:27.38 
  I've got a fix for a problem that the java classes was hitting, but it's still dying on library load.12:28.43 
  I'm downloading the latest ndk in the hopes that will fix it.12:28.55 
paulgardiner So is it our bug or in Android?12:30.18 
Robin_Watts paulgardiner: I don't know.12:30.52 
  I've had it working under the emulator running Froyo before.12:31.15 
  So certainly it's something that used to work.12:31.25 
paulgardiner Could it be to do with passing globals?12:35.05 
sebras Robin_Watts: you upgraded your ndk, is that the reason perhaps?12:36.00 
Robin_Watts sebras: Possibly. I'm trying the latest ndk now.12:36.25 
sebras Robin_Watts: or maybe downgrading (just to verify that it used to work)12:36.54 
Robin_Watts sebras: I'd hope that they'd want ndks to be backwardly compatible.12:37.34 
  I will try downgrading if I have to, but there were reasons for upgrading, generally.12:37.48 
sebras Robin_Watts: I'd hope that too, but I wouldn't bet on that they haven't messed up...12:38.03 
sebras being pessimistic...12:38.09 
Robin_Watts oh, I wonder if it's V8?12:44.48 
  paulgardiner: The V8 libs are presumably v7a only?12:45.49 
paulgardiner Ah yes.. I'd guess I built only the v7a versions12:46.41 
Robin_Watts I think I built the libs we're currently using, didn't I?12:48.00 
  (based on your instructions)12:48.09 
kens Robin_Watts : and now bmpcmp works, so I'm confused :-)12:50.29 
Robin_Watts Right. A non-V8 build works fine.12:50.31 
  kens: It wasn't me, I didn't change anything. It was broken when I found it. You can't prove anything.12:51.01 
kens well actually only *some* of the files worked...12:51.16 
Robin_Watts kens: some were working before.12:53.13 
kens No, before I got none, this time I got some12:53.25 
Robin_Watts No, before there were a couple with bitmaps in your report.12:53.41 
kens Hmm, I thought all 17 came out with errors12:53.57 
Robin_Watts 21, I thought.12:54.14 
Robin_Watts tries to remember how to build V8.12:54.42 
  paulgardiner: Actually... I think we may be using V8 android libs that you built - I did the windows/linux/macosx ones.12:56.18 
  paulgardiner: Can you build armeabi ones simply ?12:56.34 
paulgardiner I still have the source but I have no memory of how to build12:58.11 
Robin_Watts paulgardiner: I have a git repo online with the source in, with an 'artifex' branch with a couple of trivial changes.12:59.50 
  And there is a MuPDFReadMe.txt in there with instructions for how to build for windows/linux/MacOSX.13:00.15 
  oh, and that repo has all the tools needed too.13:00.31 
  I don't know if that will help jog your memory.13:00.47 
  If you remember somehow, we should at least update the MuPDFReadMe.txt to include android instructions.13:01.19 
kens hey chrisl, congratulations, you cna have Avadhut too :-)13:50.44 
chrisl I'm just about to close it13:50.54 
kens :-)13:50.58 
Robin_Watts paulgardiner: Has it built yet ?14:28.29 
  I need libv8_base.a and libv8_snapshot.a14:29.23 
paulgardiner It's failed a few times because of missing tools required for 32bit builds, but it... ah, just finished. I'll see if it actually buit anything14:29.56 
  Robin_Watts: http://intranet.glidos.net/~paul/androideabi.tar.bz214:35.05 
Robin_Watts paulgardiner: http://git.ghostscript.com/?p=user/robin/mupdf.git;a=commitdiff;h=93b5a19064fab0c0fb4530a44d137d29c39e808f14:39.13 
paulgardiner What were the symtoms?14:45.46 
Robin_Watts paulgardiner: When I tried to start the app in the emulator set to Froyo it would say "Failed to resolve symbol AnimatorInflater" or something like that.14:47.52 
  So I googled, and found out why.14:48.03 
  paulgardiner: http://android-developers.blogspot.co.uk/2010/07/how-to-have-your-cupcake-and-eat-it-too.html15:06.21 
kens chrisl I think I finally have the logic correct. The report file now workls, and 2 CET files show progressionsl, with no files showing regressions.15:42.06 
  I want to do some more work for optimising widths tomorrow though.15:42.20 
Robin_Watts Bah. My local linux is 32bit. I thought it was 64.15:58.40 
Robin_Watts downloads the other NDK... 3rd one today...15:58.55 
  tor8: I had a random idea the other day...16:50.11 
  Have we ever considered writing a mupdf backend for evince?16:50.29 
fdncred is there a way to determine the proper rotation of images embedded within a PDF file with mutool (or other)?17:10.49 
  where proper = how the pdf renders the image17:11.08 
Robin_Watts fdncred: You can use mudraw -x and look at the display list. I think that includes details of the transforms in use for each image.17:11.51 
fdncred Robin_Watts: thanks i'll look into it now17:12.46 
  arrrggggg! more matrix math ;) <fill_image alpha="1" matrix="-140.933 37.7613 24.4175 91.1313 519.5 193.517" width="304" height="197"/>17:19.23 
ray_laptop interesting. a skewed image -- those aren't that common.17:26.46 
  usually xx == yy == 0 or xy == yx == 017:27.14 
  Robin_Watts: I assume that the matrix is the usual PS order: xx xy yx yy tx ty17:27.58 
fdncred this 1 page is a problem child with 3 of these images and one other that is less whack17:28.07 
Robin_Watts ray_laptop: It is.17:28.48 
ray_laptop Robin_Watts: thanks17:29.50 
ManDay Where has my file gone to after I executed gs -sDEVIC=pdfwrite -dNOPAUSE -dBATCH -dFirstPage=2 -sOutputFile=test.pdf input.pdf ???17:55.40 
  Obviously, gs did something, it ran for five minutes, but there is no sign of the output whatsoever17:56.10 
Robin_Watts -sDEVICE17:56.12 
  not -sDEVIC17:56.20 
ManDay goddamit17:56.20 
  out of curiousity, what is the answer to my question, though?17:56.39 
Robin_Watts ManDay: It depends what the default device for your build is.17:57.14 
ManDay I don't know. How can I find out?17:57.33 
  Wouldn't it make sense for GS to terminate when a wrong commandline is detected? Or does it have no way of telling that?17:57.57 
Robin_Watts We have no way of telling.17:58.06 
ManDay ah ok17:58.24 
Robin_Watts -s, -d etc set values in a postscript dictionary.17:58.25 
  Postscript can read those values. Hence we have no idea what is a mistake, and what isn't.17:58.43 
ManDay i see17:58.49 
  perhaps postscript should report an error back?17:58.59 
Robin_Watts ManDay: Why don't you invent a time machine, travel back 30 years and suggest that to the authors ?17:59.31 
ManDay brilliant idea, i'll be right back17:59.46 
  they refused.18:00.00 
  but i prevented a child from being ran over while I was back there18:00.45 
  he thanked me with a card "Danke Dir, Adolf"18:01.13 
  Robin_Watts: thanks, works fine without the typo18:02.11 
Robin_Watts fab.18:04.29 
ManDay was this a slightly annoyed version of "fabulous!"?18:05.04 
  i really appreciate your enthusiasm regarding my case18:05.19 
Robin_Watts No, no annoyance there.18:05.24 
ManDay all right18:05.30 
Robin_Watts "fab" is a fairly standard response from me - look in the logs if you want to verify.18:06.35 
ManDay i believe you, no worries18:06.43 
  i'm a little disappointed that the file less two pages is 10% bigger than the original18:07.10 
Robin_Watts ManDay: So... use a better tool.18:07.53 
ManDay Robin_Watts: huh? Better than gs, you mean?18:08.07 
Robin_Watts With pdfwrite you are taking the file entirely to bits then building it up from those parts.18:08.27 
ManDay I remember someone told me there is a specific tool for cropping pdf pages out which didn't require encoding, ehy18:08.29 
Robin_Watts This means that images get decoded/encoded etc.18:08.41 
ManDay Robin_Watts: is there a better device in ghostscript?18:08.48 
Robin_Watts Use "mutool clean in.pdf out.pdf 2-"18:09.00 
ManDay it's not a big deal, if ghostscript can't do better, i'll go with it18:09.02 
Robin_Watts That's part of mupdf.18:09.10 
  If you want to use gs, then what you have (modulo some tweaking of parameters) is the best you're going to get for now.18:09.31 
ManDay thanks18:09.57 
tor8 Robin_Watts: no. maybe we ought to.18:18.49 
Robin_Watts I looked the other day, and there is a 'backend' interface.18:19.26 
  Looks like it supports forms etc too.18:19.50 
  but I got lost in Makefile macro library hell trying to hack something up quickly.18:20.23 
kens OK I'm heading off, goodnight all18:25.28 
Robin_Watts night kens.18:25.36 
  (Twice in a row! Score!)18:25.46 
tor8 Robin_Watts: not autohell?18:48.03 
Robin_Watts tor8: probably ought to have been autohell.18:48.18 
  but I was trying for a quick hack, so I configured and then copied/edited stuff.18:48.37 
dd1804 hi19:14.53 
Robin_Watts hi19:15.55 
dd1804 I'm trying to use MuPdf on my Win32 application but the rendering speed of the pdf pages is much slower than your Windows viewer19:16.10 
  Could you give me some pointers to what I need to do to improve performance?19:16.42 
Robin_Watts dd1804: Are you sure you're not calling the render functions more often than you need to ?19:17.09 
  I mean, either you're calling more renders than you need to, or you're reinterpreting the file every time you render, or you've got something wrong with the way you're building our stuff.19:18.46 
dd1804 Yes, fz_run_display_list is taking longer than Windows viewer19:19.00 
  the pdf is quite large (~30mb)19:19.27 
Robin_Watts The size of a PDF is pretty much meaningless vis a vis how hard it is to draw.19:19.56 
  dd1804: Just to be clear here... When you first visit a page, you get that page, then pdf_run_page it to get a display list.19:21.58 
dd1804 Yes19:22.19 
Robin_Watts Then whenever you need to render a page you call fz_run_display_list on that list, right ?19:22.20 
  OK, that sounds like you are doing the right thing then.19:22.32 
dd1804 I cache the page list and then run fz_run_display_list19:23.01 
Robin_Watts And you have done measurements to see that fz_run_display_list is taking longer in your viewer than in ours ?19:23.28 
dd1804 It takes a few seconds to render a page at 300 dpi when Windows Viewer takes less than a second19:24.36 
Robin_Watts You've actually instrumented both your code and ours?19:25.17 
dd1804 yes19:26.17 
Robin_Watts Then I have no immediate answer for you.19:27.19 
  Possible differences might be to do with the size of the caches ?19:27.45 
  When you do fz_new_context, what store size are you passing?19:27.56 
dd1804 the default19:28.23 
  thanks anyway19:28.56 
Robin_Watts ok, so I'd look at profiling both sets of code to see where the time goes.19:29.15 
dd1804 I'll get back if I have more information19:29.23 
Robin_Watts If you can see that the profiles differ massively in one area, we might be able to see why.19:29.36 
  but offhand I can't think of a reason.19:29.44 
dd1804 ok19:29.57 
  I'll do that19:30.09 
  thanks19:30.26 
mvdan Robin_Watts, sebras: regarding my question about a donation link for mupdf in f-droid, you'll findus at #fdroid if you come up with something19:30.49 
Robin_Watts mvdan: Thanks.19:31.02 
 Forward 1 day (to 2013/04/09)>>> 
ghostscript.com
Search: