Register Guidelines E-Books Today's Posts Search

Go Back   MobileRead Forums > E-Book Readers > More E-Book Readers > iRex > iRex Developer's Corner

Notices

Reply
 
Thread Tools Search this Thread
Old 10-28-2006, 07:48 PM   #16
arivero
Guru
arivero knows what time it isarivero knows what time it isarivero knows what time it isarivero knows what time it isarivero knows what time it isarivero knows what time it isarivero knows what time it isarivero knows what time it isarivero knows what time it isarivero knows what time it isarivero knows what time it is
 
arivero's Avatar
 
Posts: 607
Karma: 2157
Join Date: Oct 2005
Device: NCR3125, Nokia 770,...
Quote:
Originally Posted by scotty1024
So far the Quantum DJVU file is tiding me over. But I must admit I feel weird building a viewer for a file format I have but a single instance of! You all really are going to owe me for this one.
There is also some String Theory available, but I am sure you will prefer a trustyworthy theory

Believe me there is some more instances. But it is true, DJVU is about some different page description formats packaged as if it were a single file, so a single instance is risky. Basically DJVu has three layers: background, foreground and OCR. The latter one can be empty, as well as background. Background admits a couple of compresion/smoothing formats, while foreground is about the real trick, a compression able to locate letter shapes and use them as patterns of compression. DjVuPhoto is, I guess, one of the allowed formats for background.

Basically, this means that a serious testing would need of about half dozen of different files: with and without OCR, with and without background, and some different backgrounds. Most people having DJVU files usualy ignores the fine details of each file, somehow they are not surprised about being able to search for text in an scanned document! (btw, I do not think we need search tools for the moment).

As I told elsewere, I see no problem about doing it microsoft-way: first release the program, then wait for users to tell about the bugs.

Last edited by arivero; 10-28-2006 at 07:51 PM.
arivero is offline   Reply With Quote
Old 10-29-2006, 02:05 AM   #17
DHer
Addict
DHer doesn't litterDHer doesn't litter
 
Posts: 261
Karma: 156
Join Date: Jul 2006
Device: iliad
indeed, scotty, we do owe you something. I think at least a couple of beers, whenever you are somewhere an iliad owner lives
(or do you want to open a paypal account?)

Next thing on my file format list would be rtf, but this is already covered with easy pdf transformation.
There's something else i've been thinking about:

Most digital cameras use sd cards nowadays. Should it be possible to aquire content without computer in between?
There are two problems when simply taking photos of book pages / documents: You can't easily flip through images (yet) and the pages are usually quite skewed.

Deskewing by pointing on the 4 corners should be sufficient for the beginning, how to do a prettier deskewing by recognizing lines and their shape, i don't know (yet).
DHer is offline   Reply With Quote
Advert
Old 10-29-2006, 06:13 AM   #18
Gavrahil
Member
Gavrahil began at the beginning.
 
Posts: 22
Karma: 10
Join Date: May 2006
Device: Sony Librié
To tell you the truth I once played around a little with djvu, and made a few test-files. But I simply have to say that I was rather disappointed, since the letter-fonts were completely distorted and there was no trace of anti-aliasing. Also the export-process was rather tedious and very, very slow even on my 3GHz machine.
All in all I had the impression that this format was rether excellent for the archival of old material, since it was able to create very small files even if all your pages were just scanned in. But it is by no means a comfortable reading experience.
Just my two cent.
Gavrahil is offline   Reply With Quote
Old 10-29-2006, 07:08 AM   #19
scotty1024
Banned
scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.
 
Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
Well if there were any anti-aliasing I'm sure IW44 would buff that right off the characters to continue to achieve its rather impressive compression ratio.

The Quantum Physics book I'm using as my proofing reference looks pretty nice though.
scotty1024 is offline   Reply With Quote
Old 10-30-2006, 07:01 PM   #20
scotty1024
Banned
scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.
 
Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
Current status is that djvulibre, the iRex tool chain and I are having a major nuclear melt down.

I compiled djvulibre last week and ran the command line tools on the iLiad and extracted and proofed Quantum pages on the iLiad.

Seemed like a slam dunk to go from that great start to having a idjvu up and going.

Well I had to refactor ipdf a bit more than I expected to remove poppler dependences.

But the real trouble began when I got it all coded up and tried to link it. For last two days I've been unable to link even a single method out of djvulibre into idjvu. You can put -ldjvulibre in or have it out, same list of link failures. You can put in -ldjvulibre2 and it complains no library found. You can put -ldjvulibre in and remove the actual library and it complains the library isn't found.

I'm in hell... but I'll find my way out.
scotty1024 is offline   Reply With Quote
Advert
Old 10-31-2006, 03:50 AM   #21
Antartica
Evangelist
Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.
 
Antartica's Avatar
 
Posts: 423
Karma: 1517132
Join Date: Jun 2006
Location: Madrid, Spain
Device: quaderno, remarkable2, yotaphone2, prs950, iliad, onhandpc, newton
Quote:
Originally Posted by scotty1024
But the real trouble began when I got it all coded up and tried to link it. For last two days I've been unable to link even a single method out of djvulibre into idjvu. You can put -ldjvulibre in or have it out, same list of link failures. You can put in -ldjvulibre2 and it complains no library found. You can put -ldjvulibre in and remove the actual library and it complains the library isn't found.

I'm in hell... but I'll find my way out.
Sorry if it's obvious: Have you tested with -Lpath/to/library ? And with -Wl,-rpath,/path/to/library:/usr/lib:NONE ?
Antartica is offline   Reply With Quote
Old 10-31-2006, 05:10 AM   #22
scotty1024
Banned
scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.
 
Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
Quote:
Originally Posted by Antartica
Sorry if it's obvious: Have you tested with -Lpath/to/library ? And with -Wl,-rpath,/path/to/library:/usr/lib:NONE ?
As I wrote, it finds the library, it just can't find anything to bind to in it. If I "rm /usr/local/arm/oe/arm-linux/lib/libdjvulibre.so" then try to link it complains that the library is missing.

And yet when the library is there I get:
Code:
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x14): undefined reference to `DjVuPort::id_to_url(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x18): undefined reference to `DjVuPort::id_to_file(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x1c): undefined reference to `DjVuSimplePort::request_data(DjVuPort const*, GURL const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x20): undefined reference to `DjVuSimplePort::notify_error(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x24): undefined reference to `DjVuSimplePort::notify_status(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x28): undefined reference to `DjVuPort::notify_redisplay(DjVuImage const*)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x2c): undefined reference to `DjVuPort::notify_relayout(DjVuImage const*)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x30): undefined reference to `DjVuPort::notify_chunk_done(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x34): undefined reference to `DjVuPort::notify_file_flags_changed(DjVuFile const*, long, long)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x38): undefined reference to `DjVuPort::notify_doc_flags_changed(DjVuDocument const*, long, long)'
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x3c): undefined reference to `DjVuPort::notify_decode_progress(DjVuPort const*, float)'
main.o(.gnu.linkonce.r._ZTI14DjVuSimplePort+0x8): undefined reference to `typeinfo for DjVuPort'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x14): undefined reference to `DjVuPort::id_to_url(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x18): undefined reference to `DjVuPort::id_to_file(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x1c): undefined reference to `DjVuMemoryPort::request_data(DjVuPort const*, GURL const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x20): undefined reference to `DjVuPort::notify_error(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x24): undefined reference to `DjVuPort::notify_status(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x28): undefined reference to `DjVuPort::notify_redisplay(DjVuImage const*)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x2c): undefined reference to `DjVuPort::notify_relayout(DjVuImage const*)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x30): undefined reference to `DjVuPort::notify_chunk_done(DjVuPort const*, GUTF8String const&)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x34): undefined reference to `DjVuPort::notify_file_flags_changed(DjVuFile const*, long, long)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x38): undefined reference to `DjVuPort::notify_doc_flags_changed(DjVuDocument const*, long, long)'
main.o(.gnu.linkonce.r._ZTV14DjVuMemoryPort+0x3c): undefined reference to `DjVuPort::notify_decode_progress(DjVuPort const*, float)'
main.o(.gnu.linkonce.r._ZTI14DjVuMemoryPort+0x8): undefined reference to `typeinfo for DjVuPort'
main.o(.gnu.linkonce.t._ZNK14DjVuSimplePort8inheritsERK11GUTF8String+0x14): In function `DjVuSimplePort::inherits(GUTF8String const&) const':
/usr/local/arm/oe/arm-linux/include/djvu/GString.h:1298: undefined reference to `GStringRep::cmp(GP<GStringRep> const&, char const*, int)'
main.o(.gnu.linkonce.t._ZNK14DjVuSimplePort8inheritsERK11GUTF8String+0x3c):/usr/local/arm/oe/arm-linux/include/djvu/GString.h:1298: undefined reference to `GStringRep::cmp(GP<GStringRep> const&, char const*, int)'
main.o(.gnu.linkonce.t._ZNK14DjVuMemoryPort8inheritsERK11GUTF8String+0x14): In function `DjVuMemoryPort::inherits(GUTF8String const&) const':
/usr/local/arm/oe/arm-linux/include/djvu/GString.h:1298: undefined reference to `GStringRep::cmp(GP<GStringRep> const&, char const*, int)'
main.o(.gnu.linkonce.t._ZNK14DjVuMemoryPort8inheritsERK11GUTF8String+0x3c):/usr/local/arm/oe/arm-linux/include/djvu/GString.h:1298: undefined reference to `GStringRep::cmp(GP<GStringRep> const&, char const*, int)'
main.o(.gnu.linkonce.t._ZN14DjVuSimplePortD1Ev+0xc): In function `DjVuSimplePort::~DjVuSimplePort()':
/home/irex/idjvu/src/main.cc:80: undefined reference to `DjVuPort::~DjVuPort()'
main.o(.gnu.linkonce.t._ZN14DjVuSimplePortD0Ev+0x10): In function `DjVuSimplePort::~DjVuSimplePort()':
/home/irex/idjvu/src/main.cc:80: undefined reference to `DjVuPort::~DjVuPort()'
main.o(.gnu.linkonce.t._ZN14DjVuSimplePortD0Ev+0x1c):/home/irex/idjvu/src/main.cc:80: undefined reference to `DjVuPort::operator delete(void*)'
main.o(.gnu.linkonce.t._ZN14DjVuMemoryPortD1Ev+0x5c): In function `DjVuMemoryPort::~DjVuMemoryPort()':
/home/irex/idjvu/src/main.cc:80: undefined reference to `GSetBase::~GSetBase()'
main.o(.gnu.linkonce.t._ZN14DjVuMemoryPortD1Ev+0x6c): In function `DjVuMemoryPort::~DjVuMemoryPort()':
/usr/local/arm/oe/arm-linux/include/djvu/GThreads.h:446: undefined reference to `DjVuPort::~DjVuPort()'
main.o(.gnu.linkonce.t._ZN14DjVuMemoryPortD1Ev+0x9c):/usr/local/arm/oe/arm-linux/include/djvu/GThreads.h:446: undefined reference to `DjVuPort::~DjVuPort()'
main.o(.gnu.linkonce.t._ZN14DjVuMemoryPortD0Ev+0x5c): In function `DjVuMemoryPort::~DjVuMemoryPort()':
/home/irex/idjvu/src/main.cc:80: undefined reference to `GSetBase::~GSetBase()'
main.o(.gnu.linkonce.t._ZN14DjVuMemoryPortD0Ev+0x6c): In function `DjVuMemoryPort::~DjVuMemoryPort()':
/usr/local/arm/oe/arm-linux/include/djvu/GThreads.h:446: undefined reference to `DjVuPort::~DjVuPort()'
main.o(.gnu.linkonce.t._ZN14DjVuMemoryPortD0Ev+0x74): In function `DjVuMemoryPort::~DjVuMemoryPort()':
/home/irex/idjvu/src/main.cc:80: undefined reference to `DjVuPort::operator delete(void*)'
main.o(.gnu.linkonce.t._ZN14DjVuMemoryPortD0Ev+0xa4): In function `DjVuMemoryPort::~DjVuMemoryPort()':
/usr/local/arm/oe/arm-linux/include/djvu/GThreads.h:446: undefined reference to `DjVuPort::~DjVuPort()'
DJVUCore.o(.text+0x140): In function `CDJVUCore::getPageBasicInfo(CPageInfo&)':
/usr/local/arm/oe/arm-linux/include/djvu/DjVuDocument.h:607: undefined reference to `DjVuDocument::get_page(int, bool, DjVuPort*) const'
DJVUCore.o(.text+0x154): In function `CDJVUCore::getPageBasicInfo(CPageInfo&)':
/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:431: undefined reference to `GPBase::assign(GPBase const&)'
DJVUCore.o(.text+0x174):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x184):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:413: undefined reference to `DjVuImage::get_real_width() const'
DJVUCore.o(.text+0x19c):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:413: undefined reference to `DjVuImage::get_real_height() const'
DJVUCore.o(.text+0x1b0):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:413: undefined reference to `DjVuImage::get_rotate() const'
DJVUCore.o(.text+0x1e4):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x224):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x23c):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x458): In function `CDJVUCore::getNumPages()':
/home/irex/idjvu/src/DJVUCore.cpp:158: undefined reference to `DjVuDocument::get_pages_num() const'
DJVUCore.o(.text+0x4c8): In function `CDJVUCore::renderPage(CPageInfo&, int, int, int, int (*)(void*), void*)':
/home/irex/idjvu/src/DJVUCore.cpp:174: undefined reference to `DjVuDocument::get_pages_num() const'
DJVUCore.o(.text+0x4ec):/home/irex/idjvu/src/DJVUCore.cpp:176: undefined reference to `DjVuDocument::get_pages_num() const'
DJVUCore.o(.text+0x574): In function `CDJVUCore::renderPage(CPageInfo&, int, int, int, int (*)(void*), void*)':
/usr/local/arm/oe/arm-linux/include/djvu/DjVuDocument.h:607: undefined reference to `DjVuDocument::get_page(int, bool, DjVuPort*) const'
DJVUCore.o(.text+0x5d0): In function `CDJVUCore::renderPage(CPageInfo&, int, int, int, int (*)(void*), void*)':
/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:413: undefined reference to `DjVuImage::get_bitmap(GRect const&, GRect const&, int) const'
DJVUCore.o(.text+0x6f4):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x714):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x750):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x768):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x7ac): In function `CDJVUCore::renderPage(CPageInfo&, int, int, int, int (*)(void*), void*)':
/usr/local/arm/oe/arm-linux/include/djvu/GBitmap.h:570: undefined reference to `GBitmap::uncompress()'
DJVUCore.o(.text+0x818): In function `CDJVUCore::renderPage(CPageInfo&, int, int, int, int (*)(void*), void*)':
/home/irex/idjvu/src/DJVUCore.cpp:223: undefined reference to `GBitmap::zerobuffer'
DJVUCore.o(.text+0x84c): In function `CDJVUCore::getPageType(int)':
/home/irex/idjvu/src/DJVUCore.cpp:239: undefined reference to `DjVuDocument::get_pages_num() const'
DJVUCore.o(.text+0x8c4): In function `CDJVUCore::getZoomMax(int)':
/home/irex/idjvu/src/DJVUCore.cpp:239: undefined reference to `DjVuDocument::get_pages_num() const'
DJVUCore.o(.text+0xb2c): In function `CDJVUCore::verifyZoomMax(double, int)':
/home/irex/idjvu/src/DJVUCore.cpp:239: undefined reference to `DjVuDocument::get_pages_num() const'
DJVUCore.o(.text+0xe1c): In function `CDJVUCore::open(GooString*, void*)':
/usr/local/arm/oe/arm-linux/include/djvu/GString.h:1469: undefined reference to `GUTF8String::GUTF8String(char const*)'
DJVUCore.o(.text+0xe30):/usr/local/arm/oe/arm-linux/include/djvu/GString.h:1469: undefined reference to `GURL::Filename::UTF8::UTF8(GUTF8String const&)'
DJVUCore.o(.text+0xe44):/usr/local/arm/oe/arm-linux/include/djvu/GString.h:1469: undefined reference to `GURL::GURL(GURL const&)'
DJVUCore.o(.text+0xeb4): In function `CDJVUCore::open(GooString*, void*)':
/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.text+0xec4): In function `CDJVUCore::open(GooString*, void*)':
/home/irex/idjvu/src/DJVUCore.cpp:78: undefined reference to `GNativeString::~GNativeString()'
DJVUCore.o(.text+0xee0): In function `CDJVUCore::open(GooString*, void*)':
/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:345: undefined reference to `GPBase::assign(GPEnabled*)'
DJVUCore.o(.text+0xefc):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:345: undefined reference to `DjVuDocument::create_wait(GURL const&, GP<DjVuPort>, DjVuFileCache*)'
DJVUCore.o(.text+0xf18):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0xf38):/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0xf50): In function `CDJVUCore::open(GooString*, void*)':
/usr/local/arm/oe/arm-linux/include/djvu/DjVuDocument.h:944: undefined reference to `GSafeFlags::operator long() const'
DJVUCore.o(.text+0x1040): In function `CDJVUCore::open(GooString*, void*)':
/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.text+0x1170):/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.text+0x12cc): In function `CDJVUCore::open(GooString*, void*)':
/usr/local/arm/oe/arm-linux/include/djvu/GSmartPointer.h:362: undefined reference to `GPEnabled::unref()'
DJVUCore.o(.text+0x1360): In function `CDJVUCore::open(GooString*, void*)':
/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.text+0x1404):/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.text+0x141c): In function `CDJVUCore::open(GooString*, void*)':
/home/irex/idjvu/src/DJVUCore.cpp:78: undefined reference to `GNativeString::~GNativeString()'
DJVUCore.o(.text+0x1484): In function `CDJVUCore::open(GooString*, void*)':
/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.text+0x15b8):/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.gnu.linkonce.t._ZN4GURL8Filename4UTF8D1Ev+0xf8): In function `GURL::Filename::UTF8::~UTF8()':
/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.gnu.linkonce.t._ZN4GURL8Filename4UTF8D1Ev+0x1c4):/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.gnu.linkonce.t._ZN4GURL8Filename4UTF8D0Ev+0xec): In function `GURL::Filename::UTF8::~UTF8()':
/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: undefined reference to `GUTF8String::~GUTF8String()'
DJVUCore.o(.gnu.linkonce.t._ZN4GURL8Filename4UTF8D0Ev+0x1c0):/usr/local/arm/oe/arm-linux/include/djvu/Arrays.h:764: more undefined references to `GUTF8String::~GUTF8String()' follow
collect2: ld returned 1 exit status
scotty1024 is offline   Reply With Quote
Old 10-31-2006, 05:45 AM   #23
Antartica
Evangelist
Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.Antartica ought to be getting tired of karma fortunes by now.
 
Antartica's Avatar
 
Posts: 423
Karma: 1517132
Join Date: Jun 2006
Location: Madrid, Spain
Device: quaderno, remarkable2, yotaphone2, prs950, iliad, onhandpc, newton
Quote:
Originally Posted by scotty1024
As I wrote, it finds the library, it just can't find anything to bind to in it. If I "rm /usr/local/arm/oe/arm-linux/lib/libdjvulibre.so" then try to link it complains that the library is missing.

And yet when the library is there I get:
Code:
main.o(.gnu.linkonce.r._ZTV14DjVuSimplePort+0x14): undefined reference to `DjVuPort::id_to_url(DjVuPort const*, GUTF8String const&)'
Both idjvu and libdjvulibre.so are c++ programs, so to be able to link them it's necessary to compile them using the same c++ compiler (sorry, there is no ABI stability for c++). At least, I think that this is what is causing you headaches.

So, you have to recompile libdjvulibre.so using the same toolchain that compiles idjvu.

Rationale: the name mangling algorithm to encode function names plus the classes to which they belong changes between different revisions of the g++ compiler to avoid problems of linking between incompatible versions of the ABI (aplication binary interface) of the generated objects, AFAIK.

An alternative solution is to declare an 'extern "C" { /* ... */ }' API for djvulibre.so using the C++ functions, so you export C functions, and those doesn't need to be mangled, have and stable ABI, so they always work.

(Rant)
As a matter of fact, I don't know why there are libraries distributed that export methods as c++ implementations. I sincerely expect libraries to export C APIs, independently of the language in which they're implemented. And if you want to have a C++ API, it's almost trivial to distribute a thin wrapper (c++ bindings) to be compiled with the program so that it present classes to the library user...

That is, if you're not using KDE. If you use KDE, libraries are c++ and you recopile everything whenever you update your compiiler X-).
(End of rant)

Last edited by Antartica; 10-31-2006 at 10:14 AM. Reason: grammar
Antartica is offline   Reply With Quote
Old 10-31-2006, 08:48 AM   #24
scotty1024
Banned
scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.
 
Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
Quote:
Originally Posted by Antartica
Both idjvu and libdjvulibre.so are c++ programs, so to be able to link them it's necessary to compile them using the same c++ compiler (sorry, there is no ABI stability for c++). At least, I think that this is what is causing you headaches.
Yep, I know all that. But alas they are both compiled with the iRex tool chain.

My best guess is some switch difference that is perturbing the mangling, sigh.

I like your idea of converting to C API though, thanks!
scotty1024 is offline   Reply With Quote
Old 10-31-2006, 12:10 PM   #25
Mike Kostousov
Connoisseur
Mike Kostousov has learned how to read e-booksMike Kostousov has learned how to read e-booksMike Kostousov has learned how to read e-booksMike Kostousov has learned how to read e-booksMike Kostousov has learned how to read e-booksMike Kostousov has learned how to read e-booksMike Kostousov has learned how to read e-books
 
Posts: 50
Karma: 861
Join Date: Aug 2006
Device: Zaurus C1000/iLiad/SE K750i
Do you have "libdjvulibre.la" file?
Mike Kostousov is offline   Reply With Quote
Old 10-31-2006, 01:52 PM   #26
scotty1024
Banned
scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.
 
Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
Quote:
Originally Posted by Mike Kostousov
Do you have "libdjvulibre.la" file?
Yes, and libtool changes that to a reference to .libs/libdjvulibre.so.
scotty1024 is offline   Reply With Quote
Old 10-31-2006, 02:03 PM   #27
scotty1024
Banned
scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.
 
Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
iLiad screen shot tool: fbshot

Performance isn't wonderful but the tool grabs screens from the iLiad and turns them into PNG's.

Source is here: http://www.sfires.net/fbshot/ (and attached)

Compiled binary for iLiad is attached.

To compile it with iRex's tool chain I use: arm-linux-gcc -O3 -o fbshot fbshot.c -lpng12 -lz -lm

I've attached some screen shots I made showing off the new ipdf in action. horse.png and text.png are from Real Soldiers of Fortune as scanned by Paul.

Text2.png comes from 1635: Cannon Law by Eric Flint and Andrew Dennis a Baen RTF file I converted to a PDF using Tiresias as the font.

And yes, that's my clock bumping the PDF tools to the left (a bug I'm currently stomping on).
Attached Thumbnails
Click image for larger version

Name:	horse.png
Views:	398
Size:	768.4 KB
ID:	2041   Click image for larger version

Name:	text.png
Views:	385
Size:	85.9 KB
ID:	2042   Click image for larger version

Name:	text2.png
Views:	379
Size:	238.4 KB
ID:	2043  
Attached Files
File Type: gz fbshot-0.3.tar.gz (16.2 KB, 307 views)
File Type: gz fbshot.tar.gz (5.6 KB, 283 views)
scotty1024 is offline   Reply With Quote
Old 10-31-2006, 03:07 PM   #28
scotty1024
Banned
scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.scotty1024 is no ebook tyro.
 
Posts: 1,300
Karma: 1479
Join Date: Jul 2006
Location: Peoples Republic of Washington
Device: Reader / iPhone / Librie / Kindle
Here are the same pages rendered via 2.7's ipdf (called xpdf back then). You can see how the error dispersion routine is chewing into the sides of glyphs making the text a bit "moth eaten".

I think the horse looks better using a pure 8 bit path but part of the fun with error dispersion is that one person's "better" is another person's "worse".
Attached Thumbnails
Click image for larger version

Name:	horse2.png
Views:	349
Size:	171.9 KB
ID:	2048   Click image for larger version

Name:	text2.png
Views:	381
Size:	86.4 KB
ID:	2049   Click image for larger version

Name:	text3.png
Views:	362
Size:	106.6 KB
ID:	2050  
scotty1024 is offline   Reply With Quote
Old 10-31-2006, 03:26 PM   #29
ElaHuguet
iLiad freak
ElaHuguet doesn't litterElaHuguet doesn't litterElaHuguet doesn't litter
 
ElaHuguet's Avatar
 
Posts: 339
Karma: 243
Join Date: Apr 2006
Location: Mallorca, Spain
Device: iRex iLiad
I agree, Scotty, both text and images look better.
ElaHuguet is offline   Reply With Quote
Old 11-01-2006, 03:12 AM   #30
Matthijs
Groupie
Matthijs will become famous soon enoughMatthijs will become famous soon enoughMatthijs will become famous soon enoughMatthijs will become famous soon enoughMatthijs will become famous soon enoughMatthijs will become famous soon enough
 
Matthijs's Avatar
 
Posts: 199
Karma: 666
Join Date: Oct 2006
Location: Eindhoven, the Netherlands
Device: iLiad, DR1000S, DR800SG
Please note that you would have to do a linear conversion to the 16 iLiad grays to be able to see what it actually looks like on the device. The images in the framebuffer have all 8bit grays but will be linearly converted to 16 grays in the eink framebuffer driver before being flushed to the display controller.
Only after that conversion you can compare these screenshots accurately as they would look on-screen.
Matthijs is offline   Reply With Quote
Reply


Forum Jump


All times are GMT -4. The time now is 02:05 AM.


MobileRead.com is a privately owned, operated and funded community.