Closed Bug 1144230 Opened 10 years ago Closed 7 years ago

[Camera][Flame] Support burst mode

Categories

(Firefox OS Graveyard :: Gaia::Camera, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: mikeh, Unassigned)

References

Details

(Whiteboard: interaction-design)

+++ This bug was initially created as a clone of Bug #1143762 +++

The AOSP CameraParameters.h doesn't mention "burst", but the CyanogenMod header does: https://gitorious.org/cyandreamproject/android_frameworks_av/source/3faf4fa8e569ae4ba9a80fc3a908400c92a80a0e:camera/CameraParameters.cpp

e.g.
const char CameraParameters::CAPTURE_MODE_NORMAL[] = "normal";
const char CameraParameters::CAPTURE_MODE_BURST[] = "burst";
const char CameraParameters::CAPTURE_MODE_CONTI_BURST[] = "contiburst";

It also looks like there are a number of parameters associated with burst mode, depending on the hardware vendor. Flame seems to define:

QCameraParameters.h:
- capture-burst-interval
- capture-burst-retroactive
- capture-burst-queue-depth
- capture-burst-exposures
- snapshot-burst-num

QCameraHWI_Parm.cpp:
- capture-burst-captures-values
- capture-burst-interval-supported
- capture-burst-interval-max
- capture-burst-interval-min
- capture-burst-interval
- capture-burst-retroactive
- capture-burst-retroactive-max
- capture-burst-exposures
- capture-burst-exposures-values
sharing my thought.

I am trying to use a way which dosent need to change API and no need to reference "burst" key.
before start burst, we need to enable zsl first and lock AE, AF.
to implement burst ,we only need to call takePicture and waiting for onSuccess and call takePicture again.

this is the most easy way to archive burst mode and without API change and dont need to reference on android parameter.

but , there still have defect, in flame currently shot to shot is around 500ms, which means only take 2 pictures per second.
I am trying to discuss with partner to improve shot-to-shot time in flame
in flame,hw platform dosent support hw jpeg encode.
currently jpeg encoder is using sw and it cost 500-800ms depend on scene.
so burst mode in flame , it is only take 2 frames in 1 second.
(In reply to becker hsieh{:behsieh} from comment #2)
> in flame,hw platform dosent support hw jpeg encode.
> currently jpeg encoder is using sw and it cost 500-800ms depend on scene.
> so burst mode in flame , it is only take 2 frames in 1 second.

Just thinking out loud, but.. is there any way to capture pictures uncompressed? If so, we could probably do post-processing to perform the JPEG encoding.
Flags: needinfo?(mhabicher)
(In reply to Justin D'Arcangelo [:justindarc] from comment #3)

> Just thinking out loud, but.. is there any way to capture pictures
> uncompressed? If so, we could probably do post-processing to perform the
> JPEG encoding.

If one of the returned .fileFormats is "raw", then we can get uncompressed data out of the camera. (This code hasn't been well exercised, though, so YMMV.) Keep in mind that this is likely to be a LOT of data, 10 to 20MB depending on the format the sensor emits.
Flags: needinfo?(mhabicher)
Firefox OS is not being worked on
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.