Closed Bug 786756 Opened 13 years ago Closed 7 years ago

Expose exposure controls through camera API

Categories

(Firefox OS Graveyard :: General, defect)

ARM
Gonk (Firefox OS)
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WONTFIX

People

(Reporter: cjones, Assigned: mikeh)

References

Details

Attachments

(2 files, 7 obsolete files)

When comparing otoro to another phone that uses the same chipset, mwu noticed that the other phone's image quality was appreciably better. The otoro preview stream seems blown out in comparison. We should ensure the initial settings we choose maximize quality. This should also incidentally boost framerate, since that's proportional to exposure time. A related issue here is that we should be initializing camera parameters to consistent defaults across all devices. It may be that the same parameters result in different exposure values, but that would be good to know. We could set up device-specific initial settings to work around that.
Component: WebRTC: Audio/Video → General
Product: Core → Boot2Gecko
QA Contact: jsmith
blocking-basecamp: --- → ?
Blocking based on discussion with clee, and over to mikeh who will either work on this or reassign to a better owner.
Assignee: nobody → mhabicher
blocking-basecamp: ? → +
The camera has a dazzling array of frobs we can, uh, frob to fix this. I'll look into it and see if any are already exposed to or worth exposing to the DOM.
Summary: Default camera settings on otoro seem to overexpose content → Camera - default settings on otoro seem to overexpose content
Whiteboard: [WebAPI:P0]
Whiteboard: [WebAPI:P0] → [WebAPI:P0] [LOE:S]
The CameraCapabilities object exposes maxSaturation, maxSharpness, and maxContrast attributes, which can be used to twiddle the respective settings on CameraControl. Camera app support needed; I haven't tested this patch yet, but it builds and shouldn't break anything else, so go ahead.
Add controls to twiddle exposure compensation, contrast, saturation, and sharpness. Some pretty gruesome results as possible. Forthcoming JS and CSS are required.
(The right file, this time.)
Attachment #660956 - Attachment is obsolete: true
Attached file apps/camera/style/camera.css (obsolete) —
Style sheet.
Attached file apps/camera/js/camera.js (obsolete) —
Javascript
New version of the patch. It seems the Otoro exposure compensation API expects real EVs instead of the indexed values described in CameraParameters.h.
Attachment #660884 - Attachment is obsolete: true
Everything that's in the previous version of this patch, plus MCE support and ISO sensitivity support: E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:352 in gotCamera: Supported memory colour enhancement modes: E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:354 in gotCamera: - enable E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:354 in gotCamera: - disable E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:365 in gotCamera: Supported ISO modes: E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:367 in gotCamera: - auto E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:367 in gotCamera: - ISO_HJR E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:367 in gotCamera: - ISO100 E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:367 in gotCamera: - ISO200 E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:367 in gotCamera: - ISO400 E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:367 in gotCamera: - ISO800 E/GeckoConsole( 4865): Content JS LOG at app://camera.gaiamobile.org/js/camera.js:367 in gotCamera: - ISO1600
Attachment #660961 - Attachment is obsolete: true
Attached file apps/camera/js/camera.js (obsolete) —
Everything that was in the previous version, plus this automatically toggles MCE once per second--not that I can see it doing anything. This version doesn't do anything with the ISO setting except log supported values. Anyone know what "ISO_HJR" is? Google draws a blank.
Attachment #660960 - Attachment is obsolete: true
mwu: on the devices you were comparing Otoro to, can you grab a logcat to compare to the Otoro's?
Status: NEW → ASSIGNED
(In reply to Mike Habicher [:mikeh] from comment #10) > > Everything that was in the previous version, plus this automatically toggles > MCE once per second--not that I can see it doing anything. Note that it's possible MCE only affects the final image, not the preview. Further experimentation required.
Patch is based on gaia/apps/camera.
Attachment #660957 - Attachment is obsolete: true
Attachment #660959 - Attachment is obsolete: true
Attachment #661019 - Attachment is obsolete: true
Hmm, turning MCE on/off (it seems to default to 'on' on Otoro) doesn't show any visible difference, though currently I've only tested it with pictures of white buildings under overcast skies, and with pictures of images on my monitor. Need some more interesting light to test with.
Doesn't appear to be occurring on the Unagi phones. No longer blocking.
blocking-basecamp: + → -
Whiteboard: [WebAPI:P0] [LOE:S] → [LOE:S]
Morph.
blocking-basecamp: - → ---
Summary: Camera - default settings on otoro seem to overexpose content → Expose exposure controls through camera API
Whiteboard: [LOE:S]
Firefox OS is not being worked on
Status: ASSIGNED → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: