public inbox for linux-media@vger.kernel.org
 help / color / mirror / Atom feed
From: Sakari Ailus <sakari.ailus@maxwell.research.nokia.com>
To: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Sung Hee Park <shpark7@stanford.edu>,
	"linux-media@vger.kernel.org" <linux-media@vger.kernel.org>,
	Nayden Kanchev <nkanchev@mm-sol.com>,
	Guennadi Liakhovetski <g.liakhovetski@gmx.de>,
	Hans Verkuil <hverkuil@xs4all.nl>,
	Cohen David Abraham <david.cohen@nokia.com>,
	andrew.b.adams@gmail.com
Subject: Re: [RFC] V4L2 API for flash devices
Date: Fri, 15 Apr 2011 08:27:03 +0300	[thread overview]
Message-ID: <4DA7D727.2010708@maxwell.research.nokia.com> (raw)
In-Reply-To: <201104142138.45541.laurent.pinchart@ideasonboard.com>

Laurent Pinchart wrote:
> Hi Sakari,

Heippa,

> On Wednesday 13 April 2011 14:16:38 Sakari Ailus wrote:
>> Sung Hee Park wrote:
>>> Here are two more use-cases for flash that might help inform the API
>>> design. Sakari encouraged me to post these. The person writing this is
>>> Andrew Adams, but I'm sending this from Sung Hee's account, because I
>>> only just subscribed to linux-media and can't immediately figure out how
>>> to reply to messages from before I subscribed. Sung Hee and I are both
>>> grad students at Stanford who work on FCam
>>> (http://fcam.garage.maemo.org/)
>>
>> Hi Andrew,
>>
>> Many thanks for the comments.
>>
>>> Second-curtain-sync:
>>>
>>> Sometimes you want to fire the flash at the end of a long exposure time.
>>> It's usually a way to depict motion. Here's an example:
>>> http://www.flickr.com/photos/latitudes/133206615/.
>>>
>>> This only really applies to xenon flashes because you can't get a crisp
>>> image out of a longer duration LED flash. Even then it's somewhat
>>> problematic on rolling-shutter sensors but still possible provided you
>>> don't mind a slight shear to the crisp part of the image. From an API
>>> perspective, it requires you to be able to specify a trigger time at
>>> some number of microseconds into the exposure. On the N900 we did this
>>> with a real-time thread.
>>>
>>> Triggering external hardware:
>>>
>>> This use-case is a little weirder, but it has the same API requirement.
>>> Some photographic setups require you to synchronize some piece of
>>> hardware with the exposure (e.g. an oscilloscope, or an external slave
>>> flash). On embedded devices this is generally difficult. If you can at
>>> least fire the flash at a precise delay into the exposure, you can
>>> attach a photodiode to it, and use the flash+photodiode as an
>>> opto-isolator to trigger your external hardware.
>>>
>>> So we're in favor of having user-settable flash duration, and also
>>> user-settable trigger times (with reference to the start of the exposure
>>> time). I'm guessing that in a SMIA++ driver the trigger time would
>>> actually be a control on the sensor device, but it seemed relevant to
>>> bring up while you guys were talking about the flash API.
>>
>> From this I reckon that in a general case the handling of the flash
>> timing cannot be left for the drivers only. There must be a way to
>> control it.
>>
>> So I'd think that also the level/edge trigger for the flash should be
>> visible. On edge trigger, the only limiting factor for the flash
>> duration on hardware would be the relatively coarse watchdog timer, and
>> I'd think the user should be able to know that.
> 
> I agree that the user should be able to query the limit. The limit value 
> should come from platform data.

Agreed.

>> The flash timing controls should be exposed by the sensor driver since
>> the sensor is what actually performs the timing.
>>
>> Laurent; what do you think?
> 
> As already discussed with you offline, I think we will need flash timing 
> controls on the sensor when the flash controller is configured with external 
> strobe in level triggered mode. I'm still not sure if the edge/level-triggered 
> names are the best option. They confused me in the beginning, so I find them 
> confusing :-) If we keep them, they will need to be very precisely documented.

I'm fine with other naming --- edge/level is from the AS3645
documentation. ADP1653 does not call it with a name as far as I
remember. Other similar chips can be found here:

<URL:http://www.austriamicrosystems.com/eng/Products/Lighting-Management/>

I tried to download the datasheets but couldn't. The AS3645 datasheet,
however, is also available here:

<URL:http://www.cdiweb.com/datasheets/austriamicro/AS3645_Datasheet_v1-6.pdf>

Regards,

-- 
Sakari Ailus
sakari.ailus@maxwell.research.nokia.com

      reply	other threads:[~2011-04-15  5:25 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-28 12:55 [RFC] V4L2 API for flash devices Sakari Ailus
2011-03-29  6:49 ` Hans Verkuil
2011-03-29  9:35   ` Sakari Ailus
2011-03-29  9:54     ` Hans Verkuil
2011-03-29 11:38       ` Sakari Ailus
2011-03-29 11:51         ` Sakari Ailus
2011-03-30  8:47           ` Laurent Pinchart
2011-04-05 10:00             ` Sakari Ailus
2011-05-02 16:04               ` Sakari Ailus
2011-05-02 19:13                 ` Hans Verkuil
2011-05-02 19:32                   ` Laurent Pinchart
2011-05-02 20:07                     ` Hans Verkuil
2011-03-30  8:55     ` Laurent Pinchart
2011-03-30 12:44       ` Sakari Ailus
2011-03-30 13:53         ` Laurent Pinchart
2011-03-30 14:18           ` Sakari Ailus
2011-03-30 14:57             ` David Cohen
2011-03-30 15:00               ` Laurent Pinchart
2011-03-31  8:09                 ` Sakari Ailus
2011-03-29 10:43 ` Kim, HeungJun
2011-03-29 14:41   ` Sakari Ailus
2011-03-30  5:06     ` Kim, HeungJun
2011-03-30 11:37       ` Sakari Ailus
2011-03-30 20:37         ` Kim HeungJun
2011-03-31  8:50           ` Sakari Ailus
2011-03-30  9:34 ` Laurent Pinchart
2011-03-30 11:05   ` Sakari Ailus
2011-03-30 13:54     ` Laurent Pinchart
2011-03-31  8:17       ` Sakari Ailus
2011-04-05 10:23         ` Sakari Ailus
2011-04-05 10:39           ` Laurent Pinchart
2011-04-05 11:21             ` Sakari Ailus
2011-04-05 11:28               ` Laurent Pinchart
2011-04-05 13:35                 ` Sakari Ailus
     [not found]                   ` <4D9B303D.1000003@mm-sol.com>
2011-04-05 16:25                     ` Laurent Pinchart
2011-04-05 12:11 ` David Cohen
2011-04-06  8:04   ` Sakari Ailus
2011-04-12 19:31 ` Sung Hee Park
     [not found] ` <BANLkTik+xqCD7uiGUchsehoUy+gwM+Cjdg@mail.gmail.com>
2011-04-13 12:16   ` Sakari Ailus
2011-04-14 19:38     ` Laurent Pinchart
2011-04-15  5:27       ` Sakari Ailus [this message]

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=4DA7D727.2010708@maxwell.research.nokia.com \
    --to=sakari.ailus@maxwell.research.nokia.com \
    --cc=andrew.b.adams@gmail.com \
    --cc=david.cohen@nokia.com \
    --cc=g.liakhovetski@gmx.de \
    --cc=hverkuil@xs4all.nl \
    --cc=laurent.pinchart@ideasonboard.com \
    --cc=linux-media@vger.kernel.org \
    --cc=nkanchev@mm-sol.com \
    --cc=shpark7@stanford.edu \
    /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