linux-media.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Frank Schäfer" <fschaefer.oss@googlemail.com>
To: Hans de Goede <hdegoede@redhat.com>, linux-media@vger.kernel.org
Subject: Re: pac7302-webcams and libv4lconvert interaction
Date: Wed, 12 Sep 2012 16:36:11 +0200	[thread overview]
Message-ID: <50509DDB.6030305@googlemail.com> (raw)
In-Reply-To: <504EE83C.5040503@redhat.com>


Am 11.09.2012 09:29, schrieb Hans de Goede:
> Hi,
>
> On 09/10/2012 10:24 PM, Frank Schäfer wrote:
>
> <snip>

Ok, I understand what that means...

>
>>
>> libv4lconvert should be modifed to do the rotation regardless of what
>> comes out of the kernel whenever V4LCONTROL_ROTATED flag is set.
>> This way it becomes just a normal software control (like software
>> h/v-flip).
>> At the moment, it can only handle (jpeg) data where the kernel and
>> header sizes are different.
>
> And that cannot be done, because what if the app enumerates frame
> sizes, sees
> 640x480 there, then the rotate 90 degrees option gets toggled on, and it
> starts streaming and gets 480x640 frames all of a sudden, or what if
> the rotation
> changes during streaming ?
>
> Which is exavtly the reason why rotated-90 is being handled the way it
> is, which
> is I must admit a bit hacky, but that is what it is, just a hack for
> pac7302
> cameras.
>
> Doing general rotation support is hard, if not impossible, at the v4l2
> level since
> it changes not only the contents but also the dimensions of the image.

Ok, you're right, general rotation / toggling rotation while streaming
is indeed a problem.
Anyway, I can't see how this affects the frame size reported by the
kernel. The data format coming out the kernel is always the same, it
doesn,'t matter if we rotate or not rotate the image (either statically
or dynamically) in userspace.

The only advantage with the current solution is, that we can pass the
frame size information from the kernel to userspace directly.
But with the cost of an inconsistent API.

And a negative side effect is, that unknown pac7302 devices (with no
V4LCONTROL_ROTATED_90_JPEG entry in libv4lconvert) do not work.
With a consistent API behavior, they would work fine (output a rotated
image). Users would at least know that their device is working and most
of them know what to do next.
For image rotation, we still need to add an entry to libv4lconvert and
to modify it to invert the width and height values in v4l2_pix_format in
this case.

The device I have here is a good example: many people reported this
device as not working years ago, one of them even got a hint in a forum
that this could be a pac7302 device 2 years ago.
But with the gpsca-pac7302 driver, he got no picture and gave up.
And if I had not started q4vl2 from the terminal and had noticed the
error message from libv4lconvert, I would have needed much more time to
find out what's wrong...

Regards,
Frank

>
> Regards,
>
> Hans



  reply	other threads:[~2012-09-12 14:36 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-06 15:13 pac7302-webcams and libv4lconvert interaction Frank Schäfer
2012-09-09 21:20 ` Hans de Goede
2012-09-10 15:36   ` Frank Schäfer
2012-09-10 18:31     ` Hans de Goede
2012-09-10 20:24       ` Frank Schäfer
2012-09-11  7:29         ` Hans de Goede
2012-09-12 14:36           ` Frank Schäfer [this message]
2012-09-13 12:05             ` Hans de Goede
2012-09-16 12:21               ` Frank Schäfer
2012-09-17  9:39                 ` Hans de Goede

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=50509DDB.6030305@googlemail.com \
    --to=fschaefer.oss@googlemail.com \
    --cc=hdegoede@redhat.com \
    --cc=linux-media@vger.kernel.org \
    /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;
as well as URLs for NNTP newsgroup(s).