image while recording video) use case.<wbr/></p>
<p>The camera device should take the highest-quality image
possible (given the other settings) without disrupting the
-frame rate of video recording.<wbr/><br/>
-</p></span>
+frame rate of video recording.<wbr/> </p></span>
</li>
<li>
<span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
image while recording video) use case.<wbr/></p>
<p>The camera device should take the highest-quality image
possible (given the other settings) without disrupting the
-frame rate of video recording.<wbr/><br/>
-</p></span>
+frame rate of video recording.<wbr/> </p></span>
</li>
<li>
<span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
<td class="entry_tags">
<ul class="entry_tags">
<li><a href="#tag_V1">V1</a></li>
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
<li><a href="#tag_V1">V1</a></li>
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
<li><a href="#tag_V1">V1</a></li>
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
controls,<wbr/> but this capability only covers the above list of controls.<wbr/></p></span>
</li>
<li>
- <span class="entry_type_enum_name">DNG</span>
+ <span class="entry_type_enum_name">RAW</span>
<span class="entry_type_enum_optional">[optional]</span>
- <span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers that can be
-saved offline into a DNG format.<wbr/></p>
+ <span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers and
+metadata for interpreting them.<wbr/></p>
+<p>Devices supporting the RAW capability allow both for
+saving DNG files,<wbr/> and for direct application processing of
+raw sensor images.<wbr/></p>
<ul>
<li>RAW_<wbr/>SENSOR is supported as an output format.<wbr/></li>
<li>The maximum available resolution for RAW_<wbr/>SENSOR streams
<tr>
<td align="left">RAW_<wbr/>OPAQUE</td>
<td align="left">RAW16</td>
-<td align="left">DNG</td>
+<td align="left">RAW</td>
</tr>
<tr>
<td align="left">RAW16</td>
<td align="left">YUV_<wbr/>420_<wbr/>888</td>
-<td align="left">DNG</td>
+<td align="left">RAW</td>
</tr>
<tr>
<td align="left">RAW16</td>
<td align="left">JPEG</td>
-<td align="left">DNG</td>
+<td align="left">RAW</td>
</tr>
</tbody>
</table>
i += length;
}
-//<wbr/> writing (static example,<wbr/> DNG+ZSL)
+//<wbr/> writing (static example,<wbr/> RAW+ZSL)
int32_<wbr/>t[] contents = {
RAW_<wbr/>OPAQUE,<wbr/> 3,<wbr/> RAW16,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
RAW16,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
<li><a href="#tag_BC">BC</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<tr class="entry_cont">
<td class="entry_details" colspan="5">
<p>The first reference illuminant (<a href="#static_android.sensor.referenceIlluminant1">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant1</a>)
-and corresponding matrices must be present to support DNG output.<wbr/></p>
+and corresponding matrices must be present to support the RAW capability
+and DNG output.<wbr/></p>
<p>When producing raw images with a color profile that has only been
calibrated against a single light source,<wbr/> it is valid to omit
<a href="#static_android.sensor.referenceIlluminant2">android.<wbr/>sensor.<wbr/>reference<wbr/>Illuminant2</a> along with the
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
<li><a href="#tag_V1">V1</a></li>
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
<li><a href="#tag_V1">V1</a></li>
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
<li><a href="#tag_V1">V1</a></li>
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<td class="entry_tags">
<ul class="entry_tags">
<li><a href="#tag_V1">V1</a></li>
- <li><a href="#tag_DNG">DNG</a></li>
+ <li><a href="#tag_RAW">RAW</a></li>
</ul>
</td>
<li><a href="#dynamic_android.noiseReduction.mode">android.noiseReduction.mode</a> (dynamic)</li>
</ul>
</li> <!-- tag_V1 -->
- <li id="tag_DNG">DNG -
- Needed for DNG file support
+ <li id="tag_RAW">RAW -
+ Needed for useful RAW image processing and DNG file support
<ul class="tags_entries">
<li><a href="#controls_android.hotPixel.mode">android.hotPixel.mode</a> (controls)</li>
<li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
<li><a href="#dynamic_android.hotPixel.mode">android.hotPixel.mode</a> (dynamic)</li>
</ul>
- </li> <!-- tag_DNG -->
+ </li> <!-- tag_RAW -->
<li id="tag_HAL2">HAL2 -
Entry is only used by camera device HAL 2.x
<tag id="V1">
New features for first camera 2 release (API1)
</tag>
- <tag id="DNG">
- Needed for DNG file support
+ <tag id="RAW">
+ Needed for useful RAW image processing and DNG file support
</tag>
<tag id="HAL2">
Entry is only used by camera device HAL 2.x
are stuck at an arbitrary value).
</details>
<tag id="V1" />
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
</controls>
<static>
pixels than actual pixels on the camera sensor.
</hal_details>
<tag id="V1" />
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
</static>
<dynamic>
<clone entry="android.hotPixel.mode" kind="controls">
<tag id="V1" />
- <tag id="DNG" />
+ <tag id="RAW" />
</clone>
</dynamic>
</section>
controls, but this capability only covers the above list of controls.
</notes>
</value>
- <value optional="true">DNG
+ <value optional="true">RAW
<notes>
- The camera device supports outputting RAW buffers that can be
- saved offline into a DNG format.
+ The camera device supports outputting RAW buffers and
+ metadata for interpreting them.
+
+ Devices supporting the RAW capability allow both for
+ saving DNG files, and for direct application processing of
+ raw sensor images.
* RAW_SENSOR is supported as an output format.
* The maximum available resolution for RAW_SENSOR streams
:---------------|:-----------------|:----------
RAW_OPAQUE | JPEG | ZSL
RAW_OPAQUE | YUV_420_888 | ZSL
- RAW_OPAQUE | RAW16 | DNG
- RAW16 | YUV_420_888 | DNG
- RAW16 | JPEG | DNG
+ RAW_OPAQUE | RAW16 | RAW
+ RAW16 | YUV_420_888 | RAW
+ RAW16 | JPEG | RAW
For ZSL-capable camera devices, using the RAW_OPAQUE format
as either input or output will never hurt maximum frame rate (i.e.
i += length;
}
- // writing (static example, DNG+ZSL)
+ // writing (static example, RAW+ZSL)
int32_t[] contents = {
RAW_OPAQUE, 3, RAW16, YUV_420_888, BLOB,
RAW16, 2, YUV_420_888, BLOB,
</range>
<details>It is smaller or equal to
sensor full pixel array, which could include the black calibration pixels.</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="sensitivityRange" type="int32" visibility="public"
type_notes="Range of supported sensitivities"
<description>The arrangement of color filters on sensor;
represents the colors in the top-left 2x2 section of
the sensor, in reading order.</description>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="exposureTimeRange" type="int64" visibility="public"
type_notes="nanoseconds" container="array" typedef="rangeLong">
If a size corresponding to pixelArraySize is listed, the resulting
raw sensor image will include black pixels.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
<tag id="BC" />
</entry>
<entry name="whiteLevel" type="int32" visibility="public">
so the value for linear sensors should not be significantly lower
than maximum raw value supported, i.e. 2^(sensor bits per pixel).
</hal_details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="timestampCalibration" type="byte" visibility="public" enum="true">
<enum>
</details>
<hal_details>
The first reference illuminant (android.sensor.referenceIlluminant1)
- and corresponding matrices must be present to support DNG output.
+ and corresponding matrices must be present to support the RAW capability
+ and DNG output.
When producing raw images with a color profile that has only been
calibrated against a single light source, it is valid to omit
temperature illuminant such as D65 will be chosen for the second
reference illuminant.
</hal_details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="referenceIlluminant2" type="byte" visibility="public">
<description>
android.sensor.calibrationTransform2, and
android.sensor.forwardMatrix2 will also be present.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="calibrationTransform1" type="rational"
visibility="public" optional="true"
space under the first reference illuminant
(android.sensor.referenceIlluminant1).
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="calibrationTransform2" type="rational"
visibility="public" optional="true"
This matrix will only be present if the second reference
illuminant is present.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="colorTransform1" type="rational"
visibility="public" optional="true"
match the standard white point for the first reference illuminant
(i.e. no chromatic adaptation will be applied by this transform).
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="colorTransform2" type="rational"
visibility="public" optional="true"
This matrix will only be present if the second reference
illuminant is present.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="forwardMatrix1" type="rational"
visibility="public" optional="true"
illuminant in the reference sensor colorspace is mapped to D50 in the
CIE XYZ colorspace.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="forwardMatrix2" type="rational"
visibility="public" optional="true"
This matrix will only be present if the second reference
illuminant is present.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="baseGainFactor" type="rational"
optional="true">
The values are given in row-column scan order, with the first value
corresponding to the element of the CFA in row=0, column=0.
</hal_details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="maxAnalogSensitivity" type="int32" visibility="public"
optional="true">
dimensions given is hue, saturation, value; where hue is the 0th
element.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="noiseProfile" type="double" visibility="public"
optional="true" type_notes="Pairs of noise model coefficients"
for the red channel, S1 and O1 are the coefficients for the first green
channel, etc.
</hal_details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
</static>
<dynamic>
The order of the values is R, G, B; where R is in the lowest index.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="profileHueSatMap" type="float"
visibility="system" optional="true"
inner loop. All zero input saturation entries are required to have a
value scale factor of 1.0.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="profileToneCurve" type="float"
visibility="system" optional="true"
The curve is specified as a list of value pairs in linear gamma.
The curve is interpolated using a cubic spline.
</details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
<entry name="greenSplit" type="float" visibility="public" optional="true">
<description>
set of images. Other methods of calculation that produce equivalent
results, and can be interpreted in the same manner, may be used.
</hal_details>
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
</dynamic>
<controls>
This must be set to a valid mode from android.statistics.info.availableHotPixelMapModes.
</details>
<tag id="V1" />
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
</controls>
<static>
the ON and OFF options.
</details>
<tag id="V1" />
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
</namespace>
</static>
pixels than actual pixels on the camera sensor.
</hal_details>
<tag id="V1" />
- <tag id="DNG" />
+ <tag id="RAW" />
</entry>
</dynamic>
<controls>
ANDROID_STATISTICS_LENS_SHADING_MAP_MODE, // enum | public
ANDROID_STATISTICS_END,
- ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES =
+ ANDROID_STATISTICS_INFO_AVAILABLE_FACE_DETECT_MODES =
// byte[] | public
ANDROID_STATISTICS_INFO_START,
ANDROID_STATISTICS_INFO_HISTOGRAM_BUCKET_COUNT, // int32 | system
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE,
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR,
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING,
- ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DNG,
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DNG = 3, // temporary manual edit
+ ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW = 3,
ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ZSL,
} camera_metadata_enum_android_request_available_capabilities_t;
ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL = 0,
ANDROID_SYNC_MAX_LATENCY_UNKNOWN = -1,
} camera_metadata_enum_android_sync_max_latency_t;
-
-
msg = "MANUAL_POST_PROCESSING";
ret = 0;
break;
- case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DNG:
- msg = "DNG";
+ case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW:
+ msg = "RAW";
ret = 0;
break;
case ANDROID_REQUEST_AVAILABLE_CAPABILITIES_ZSL: