[Buildroot] [PATCH v2 1/1] turbovnc: new package

Stefan Fröberg stefan.froberg at petroprogram.com
Tue Nov 7 13:28:32 UTC 2017


Hi

Well, the only reason seems to be that TurboVNC configuration is not 
happy untill the following
conditions are met:

TJPEG_INCLUDE_DIR = <path_to_include>/turbojepg.h
TJPEG_LIBRARY = <path_to_lib>/libturbojpeg

So why is it looking those and not jpeg,h or libjpeg ? Let's do some 
detective work :-)

First, looking from my gentoo installation (that only has libjpeg-turbo) 
I can see that:
/usr/include
-----------------
jpeglib.h
turbojpeg.h

and
/usr/lib
----------------
libjpeg.so -> libjpeg.so.62.2.0
libjpeg.so.62 -> libjpeg.so.62.2.0
libjpeg.so.62.2.0
libturbojpeg.so -> libturbojpeg.so.0.1.0
libturbojepg.so.0 -> libturbojpeg.so.0.1.0
libturbojpeg.so.0.1.0

Funny, I always tought that jpeglib.h and all the libjpeg.* would be
just symlinks to turbojpeg.h and libturbojpeg

So why does my gentoo libjpeg-turbo installation have separate
jpeg.h and libjpeg.* files instead of just symlinks?

It appears to be that libjpeg-turbo library contains actually
*two* JPEG API's!

jpeg.h and libjpeg.* being the standard (but SIMD accelerated), API 
compatible
implementation like you mentioned and that can just be dropped to 
replace vanilla jpeg.

And then there is another API called TurboJPEG (turbojpeg.h and 
libturbojpeg.*) that is
also bundled with libjpeg-turbo library and that's what the TurboVNC is 
using.

Performance wise there is no difference between the two API's but 
according to below link,
TurboJPEG API provides some features that are not easy to implement with 
standard libjpeg API

https://libjpeg-turbo.org/About/TurboJPEG

So what now?
Try to ask upstream if can use SIMD accelerated, standard libjpeg API 
(jpeg.h, libjpeg.*) instead of
TurboJPEG API ??? (maybe not possible if TurboVNC indeed needs some of 
the TurboJPEG API's stuff)

Dang .... maybe I just try to temporarily symlink turbojpeg.h 
libturbojpeg.* to libjpeg API using version
of the accelerated library and see where it starts to complaining ....

-S-

7.11.2017, 0:38, Thomas Petazzoni kirjoitti:
> Hello,
>
> On Mon, 6 Nov 2017 23:19:00 +0100, Arnout Vandecappelle wrote:
>
>>> 1. TurboVNC really does depend of turbo-jpeg, that's one of the reasons it's so
>>> fast.
>>> So for now I have made it "depends on BR2_PACKAGE_JPEG_TURBO" so that turbovnc
>>> package will only appear to menu only if jpeg-turbo has been also selected.
>>> Is that okay?
>>   Yes, there is no other way. However, please do add a comment (separately from
>> the toolchain comments) that it needs jpeg-turbo.
> I still would like to challenge why it needs jpeg-turbo. libjpeg and
> jpeg-turbo are supposed to be API compatible, so how can TurboVNC need
> one rather than the other? I can understand that TurboVNC's performance
> might be horrible with the regular libjpeg, but I don't get why it
> wouldn't work.
>
> Stefan?
>
> Thomas




More information about the buildroot mailing list