Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: "Stefan Fröberg" <stefan.froberg@petroprogram.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 1/1] turbovnc: new package
Date: Tue, 07 Nov 2017 15:28:32 +0200	[thread overview]
Message-ID: <5A01B500.6020007@petroprogram.com> (raw)
In-Reply-To: <20171106233821.2a5aed3b@windsurf>

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

  reply	other threads:[~2017-11-07 13:28 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-30 12:40 [Buildroot] [PATCH v2 1/1] turbovnc: new package Stefan Fröberg
2017-11-01  6:06 ` Baruch Siach
2017-11-01  9:53   ` Thomas Petazzoni
2017-11-02 21:21     ` Stefan Fröberg
2017-11-02 21:28       ` Thomas Petazzoni
2017-11-02 23:20         ` Stefan Fröberg
2017-11-03 22:17         ` Stefan Fröberg
2017-11-06 13:13         ` Stefan Fröberg
2017-11-06 19:59           ` Baruch Siach
2017-11-06 20:05             ` Thomas Petazzoni
2017-11-06 22:19           ` Arnout Vandecappelle
2017-11-06 22:38             ` Thomas Petazzoni
2017-11-07 13:28               ` Stefan Fröberg [this message]
2017-11-01 19:18   ` Stefan Fröberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5A01B500.6020007@petroprogram.com \
    --to=stefan.froberg@petroprogram.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox