All of lore.kernel.org
 help / color / mirror / Atom feed
From: Hans de Goede <hdegoede@redhat.com>
To: Janne Grunau <j@jannau.net>
Cc: Mitar <mmitar@gmail.com>, linux-media@vger.kernel.org
Subject: Re: [PATCH] Too slow libv4l MJPEG decoding with HD cameras
Date: Wed, 27 Oct 2010 15:23:41 +0200	[thread overview]
Message-ID: <4CC827DD.5070109@redhat.com> (raw)
In-Reply-To: <20101027104933.GC15291@aniel.fritz.box>

Hi,

On 10/27/2010 12:49 PM, Janne Grunau wrote:

<snip>

>>> With using ffmpeg MJPEG decoding it takes my computer on average
>>> 43.616 ms to decode the frame what is 0.0087 us per pixel.
>>
>> That is a great improvement, but using ffmpeg in libv4l is not an option
>> for multiple reasons:
>>
>> 1) It is GPL licensed not LGPL
>
> FFmpeg is mostly LGPL licensed, only a few optimizations and interfaces
> to GPL libraries. Running FFmpeg's configure without options and
> especially without --enable-gpl will only use lgpl or compatible
> licensed code.
>

Ok, that is good to know.

>> 2) It has various other legal issues which means it is not available
>>      in most distro's main repository.
>
> FUD, Ubuntu doesn't seem to have a problem with it.

Not a really helpful response I'm afraid, there are a number of highprofile
distributions which do not include ffmpeg, so depending on ffmpeg is not
really an option.

>> So I'm afraid that using ffmpeg really is out of the question. What
>> would be interesting is to see how libjpeg performs and then esp. the
>> turbo-libjpeg version:
>> http://libjpeg-turbo.virtualgl.org/
>>
>> I would love to see a patch to use that instead of tiny jpeg, leaving
>> tinyjpeg usage only for the pixart jpeg variant stuff.
>>
>> Note that some cameras generate what I call planar jpeg, this means
>> that they send 3 SOS markers with one component per scan. I don't know
>> if libjpeg will grok this (I had to patch libv4l's tinyjpeg copy for
>> this). But first lets see how libjpeg performs, and then we can always
>> use tinyjpeg to parse the header and depending on the header decide to
>> use tinyjpeg or libjpeg.
>>
>> Sorry about nacking your ffmpeg patch,
>
> While the patch is not the cleanest, there shouldn't be a problem of
> making ffmpeg mjpeg decoding optional.

If and only if libjpeg-turbo turns out to be much slower this is something
to consider. But the first thing to do here is see if we can solve this
in a way which is acceptable to all downstream users of libv4l, and thus
can be added in a non optional way (so make libv4l require libjpeg).

I'm not a big fan of optional features / compile time options as they
do not make support any easier.

Regards,

Hans

  reply	other threads:[~2010-10-27 13:19 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-10-26 23:51 [PATCH] Too slow libv4l MJPEG decoding with HD cameras Mitar
2010-10-27  9:08 ` Hans de Goede
2010-10-27 10:49   ` Janne Grunau
2010-10-27 13:23     ` Hans de Goede [this message]
2010-10-27 13:59       ` Mitar
2010-10-27 17:43         ` Hans de Goede
2010-10-28 20:35           ` Mitar
2010-10-27 14:01     ` Mitar

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=4CC827DD.5070109@redhat.com \
    --to=hdegoede@redhat.com \
    --cc=j@jannau.net \
    --cc=linux-media@vger.kernel.org \
    --cc=mmitar@gmail.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.