<p>This control (except for MANUAL) is only effective if
<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
-contains OPAQUE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/> MANUAL will be supported if
+contains PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/> MANUAL will be supported if
<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains MANUAL_<wbr/>SENSOR.<wbr/> Other intent values are
always supported.<wbr/></p>
</td>
<p>This control (except for MANUAL) is only effective if
<code><a href="#controls_android.control.mode">android.<wbr/>control.<wbr/>mode</a> != OFF</code> and any 3A routine is active.<wbr/></p>
<p>ZERO_<wbr/>SHUTTER_<wbr/>LAG will be supported if <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>
-contains OPAQUE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/> MANUAL will be supported if
+contains PRIVATE_<wbr/>REPROCESSING or YUV_<wbr/>REPROCESSING.<wbr/> MANUAL will be supported if
<a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains MANUAL_<wbr/>SENSOR.<wbr/> Other intent values are
always supported.<wbr/></p>
</td>
only the input buffer will be used to produce these output stream buffers,<wbr/> and a
new sensor image will not be captured.<wbr/></p>
<p>For example,<wbr/> for Zero Shutter Lag (ZSL) still capture use case,<wbr/> the input
-stream image format will be OPAQUE,<wbr/> the associated output stream image format
+stream image format will be PRIVATE,<wbr/> the associated output stream image format
should be JPEG.<wbr/></p>
</td>
</tr>
</ul></span>
</li>
<li>
- <span class="entry_type_enum_name">OPAQUE_REPROCESSING</span>
+ <span class="entry_type_enum_name">PRIVATE_REPROCESSING</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device supports the Zero Shutter Lag reprocessing use case.<wbr/></p>
<ul>
<li><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> will be reprocessable into both
<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a> and
<a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a> formats.<wbr/></li>
-<li>The maximum available resolution for OPAQUE streams
+<li>The maximum available resolution for PRIVATE streams
(both input/<wbr/>output) will match the maximum available
resolution of JPEG streams.<wbr/></li>
<li>Static metadata <a href="#static_android.reprocess.maxCaptureStall">android.<wbr/>reprocess.<wbr/>max<wbr/>Capture<wbr/>Stall</a>.<wbr/></li>
<span class="entry_type_enum_name">YUV_REPROCESSING</span>
<span class="entry_type_enum_optional">[optional]</span>
<span class="entry_type_enum_notes"><p>The camera device supports the YUV_<wbr/>420_<wbr/>888 reprocessing use case,<wbr/> similar as
-OPAQUE_<wbr/>REPROCESSING,<wbr/> This capability requires the camera device to support the
+PRIVATE_<wbr/>REPROCESSING,<wbr/> This capability requires the camera device to support the
following:</p>
<ul>
<li>One input stream is supported,<wbr/> that is,<wbr/> <code><a href="#static_android.request.maxNumInputStreams">android.<wbr/>request.<wbr/>max<wbr/>Num<wbr/>Input<wbr/>Streams</a> == 1</code>.<wbr/></li>
the result.<wbr/></p>
<p>If MANUAL_<wbr/>SENSOR is omitted,<wbr/> the HAL may choose to omit the
<a href="#static_android.scaler.availableMinFrameDurations">android.<wbr/>scaler.<wbr/>available<wbr/>Min<wbr/>Frame<wbr/>Durations</a> static property entirely.<wbr/></p>
-<p>For OPAQUE_<wbr/>REPROCESSING and YUV_<wbr/>REPROCESSING capabilities,<wbr/> see
+<p>For PRIVATE_<wbr/>REPROCESSING and YUV_<wbr/>REPROCESSING capabilities,<wbr/> see
hardware/<wbr/>libhardware/<wbr/>include/<wbr/>hardware/<wbr/>camera3.<wbr/>h Section 10 for more information.<wbr/></p>
<p>Devices that support the MANUAL_<wbr/>SENSOR capability must support the
CAMERA3_<wbr/>TEMPLATE_<wbr/>MANUAL template defined in camera3.<wbr/>h.<wbr/></p>
-<p>Devices that support the OPAQUE_<wbr/>REPROCESSING capability or the
+<p>Devices that support the PRIVATE_<wbr/>REPROCESSING capability or the
YUV_<wbr/>REPROCESSING capability must support the
CAMERA3_<wbr/>TEMPLATE_<wbr/>ZERO_<wbr/>SHUTTER_<wbr/>LAG template defined in camera3.<wbr/>h.<wbr/></p>
<p>For DEPTH_<wbr/>OUTPUT,<wbr/> the depth-format keys
<tr>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#JPEG">ImageFormat#JPEG</a></td>
-<td align="left">OPAQUE_<wbr/>REPROCESSING</td>
+<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
</tr>
<tr>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a></td>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
-<td align="left">OPAQUE_<wbr/>REPROCESSING</td>
+<td align="left">PRIVATE_<wbr/>REPROCESSING</td>
</tr>
<tr>
<td align="left"><a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#YUV_420_888">Image<wbr/>Format#YUV_<wbr/>420_<wbr/>888</a></td>
</tbody>
</table>
<p>PRIVATE refers to a device-internal format that is not directly application-visible.<wbr/> A
-PRIVATE input surface can be acquired by <a href="https://developer.android.com/reference/android/media/ImageReader.html#newOpaqueInstance">ImageReader#newOpaqueInstance</a>.<wbr/></p>
-<p>For a OPAQUE_<wbr/>REPROCESSING-capable camera device,<wbr/> using the PRIVATE format as either input
+PRIVATE input surface can be acquired by <a href="https://developer.android.com/reference/android/media/ImageReader.html#newInstance">ImageReader#newInstance</a>
+with <a href="https://developer.android.com/reference/android/graphics/ImageFormat.html#PRIVATE">ImageFormat#PRIVATE</a> as the format.<wbr/></p>
+<p>For a PRIVATE_<wbr/>REPROCESSING-capable camera device,<wbr/> using the PRIVATE format as either input
or output will never hurt maximum frame rate (i.<wbr/>e.<wbr/> <a href="https://developer.android.com/reference/android/hardware/camera2/params/StreamConfigurationMap.html#getOutputStallDuration">getOutputStallDuration(ImageFormat.<wbr/>PRIVATE,<wbr/> size)</a> is always 0),<wbr/></p>
<p>Attempting to configure an input stream with output streams not
listed as available in this map is not valid.<wbr/></p>
i += length;
}
-//<wbr/> writing (static example,<wbr/> OPAQUE_<wbr/>REPROCESSING + YUV_<wbr/>REPROCESSING)
+//<wbr/> writing (static example,<wbr/> PRIVATE_<wbr/>REPROCESSING + YUV_<wbr/>REPROCESSING)
int32_<wbr/>t[] contents = {
IMPLEMENTATION_<wbr/>DEFINED,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
YUV_<wbr/>420_<wbr/>888,<wbr/> 2,<wbr/> YUV_<wbr/>420_<wbr/>888,<wbr/> BLOB,<wbr/>
formats/<wbr/>sizes combination.<wbr/></p>
<p>If this key reports 0,<wbr/> it means a reprocess request doesn't introduce any glitch to the
ongoing camera repeating request outputs,<wbr/> as if this reprocess request is never issued.<wbr/></p>
-<p>This key is supported if the camera device supports OPAQUE or YUV reprocessing (
-i.<wbr/>e.<wbr/> <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains OPAQUE_<wbr/>REPROCESSING or
+<p>This key is supported if the camera device supports PRIVATE or YUV reprocessing (
+i.<wbr/>e.<wbr/> <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a> contains PRIVATE_<wbr/>REPROCESSING or
YUV_<wbr/>REPROCESSING).<wbr/></p>
</td>
</tr>
</ul>
</li> <!-- tag_DEPTH -->
<li id="tag_REPROC">REPROC -
- Entry is required for the YUV or Opaque reprocessing capability.
+ Entry is required for the YUV or PRIVATE reprocessing capability.
<ul class="tags_entries">
<li><a href="#controls_android.edge.mode">android.edge.mode</a> (controls)</li>
Entry is required for the depth capability.
</tag>
<tag id="REPROC">
- Entry is required for the YUV or Opaque reprocessing capability.
+ Entry is required for the YUV or PRIVATE reprocessing capability.
</tag>
<tag id="FUTURE">
Entry is under-specified and is not required for now. This is for book-keeping purpose,
`android.control.mode != OFF` and any 3A routine is active.
ZERO_SHUTTER_LAG will be supported if android.request.availableCapabilities
- contains OPAQUE_REPROCESSING or YUV_REPROCESSING. MANUAL will be supported if
+ contains PRIVATE_REPROCESSING or YUV_REPROCESSING. MANUAL will be supported if
android.request.availableCapabilities contains MANUAL_SENSOR. Other intent values are
always supported.
</details>
new sensor image will not be captured.
For example, for Zero Shutter Lag (ZSL) still capture use case, the input
- stream image format will be OPAQUE, the associated output stream image format
+ stream image format will be PRIVATE, the associated output stream image format
should be JPEG.
</details>
<hal_details>
by the camera device.
</notes>
</value>
- <value optional="true">OPAQUE_REPROCESSING
+ <value optional="true">PRIVATE_REPROCESSING
<notes>
The camera device supports the Zero Shutter Lag reprocessing use case.
* {@link android.graphics.ImageFormat#PRIVATE} will be reprocessable into both
{@link android.graphics.ImageFormat#YUV_420_888} and
{@link android.graphics.ImageFormat#JPEG} formats.
- * The maximum available resolution for OPAQUE streams
+ * The maximum available resolution for PRIVATE streams
(both input/output) will match the maximum available
resolution of JPEG streams.
* Static metadata android.reprocess.maxCaptureStall.
<value optional="true">YUV_REPROCESSING
<notes>
The camera device supports the YUV_420_888 reprocessing use case, similar as
- OPAQUE_REPROCESSING, This capability requires the camera device to support the
+ PRIVATE_REPROCESSING, This capability requires the camera device to support the
following:
* One input stream is supported, that is, `android.request.maxNumInputStreams == 1`.
If MANUAL_SENSOR is omitted, the HAL may choose to omit the
android.scaler.availableMinFrameDurations static property entirely.
- For OPAQUE_REPROCESSING and YUV_REPROCESSING capabilities, see
+ For PRIVATE_REPROCESSING and YUV_REPROCESSING capabilities, see
hardware/libhardware/include/hardware/camera3.h Section 10 for more information.
Devices that support the MANUAL_SENSOR capability must support the
CAMERA3_TEMPLATE_MANUAL template defined in camera3.h.
- Devices that support the OPAQUE_REPROCESSING capability or the
+ Devices that support the PRIVATE_REPROCESSING capability or the
YUV_REPROCESSING capability must support the
CAMERA3_TEMPLATE_ZERO_SHUTTER_LAG template defined in camera3.h.
Input Format | Output Format | Capability
:-------------------------------------------------|:--------------------------------------------------|:----------
- {@link android.graphics.ImageFormat#PRIVATE} | {@link android.graphics.ImageFormat#JPEG} | OPAQUE_REPROCESSING
- {@link android.graphics.ImageFormat#PRIVATE} | {@link android.graphics.ImageFormat#YUV_420_888} | OPAQUE_REPROCESSING
+ {@link android.graphics.ImageFormat#PRIVATE} | {@link android.graphics.ImageFormat#JPEG} | PRIVATE_REPROCESSING
+ {@link android.graphics.ImageFormat#PRIVATE} | {@link android.graphics.ImageFormat#YUV_420_888} | PRIVATE_REPROCESSING
{@link android.graphics.ImageFormat#YUV_420_888} | {@link android.graphics.ImageFormat#JPEG} | YUV_REPROCESSING
{@link android.graphics.ImageFormat#YUV_420_888} | {@link android.graphics.ImageFormat#YUV_420_888} | YUV_REPROCESSING
PRIVATE refers to a device-internal format that is not directly application-visible. A
- PRIVATE input surface can be acquired by {@link android.media.ImageReader#newOpaqueInstance}.
+ PRIVATE input surface can be acquired by {@link android.media.ImageReader#newInstance}
+ with {@link android.graphics.ImageFormat#PRIVATE} as the format.
- For a OPAQUE_REPROCESSING-capable camera device, using the PRIVATE format as either input
+ For a PRIVATE_REPROCESSING-capable camera device, using the PRIVATE format as either input
or output will never hurt maximum frame rate (i.e. {@link
android.hardware.camera2.params.StreamConfigurationMap#getOutputStallDuration
getOutputStallDuration(ImageFormat.PRIVATE, size)} is always 0),
i += length;
}
- // writing (static example, OPAQUE_REPROCESSING + YUV_REPROCESSING)
+ // writing (static example, PRIVATE_REPROCESSING + YUV_REPROCESSING)
int32_t[] contents = {
IMPLEMENTATION_DEFINED, 2, YUV_420_888, BLOB,
YUV_420_888, 2, YUV_420_888, BLOB,
If this key reports 0, it means a reprocess request doesn't introduce any glitch to the
ongoing camera repeating request outputs, as if this reprocess request is never issued.
- This key is supported if the camera device supports OPAQUE or YUV reprocessing (
- i.e. android.request.availableCapabilities contains OPAQUE_REPROCESSING or
+ This key is supported if the camera device supports PRIVATE or YUV reprocessing (
+ i.e. android.request.availableCapabilities contains PRIVATE_REPROCESSING or
YUV_REPROCESSING).
</details>
<tag id="REPROC" />