Camera: Add support for HAL-versioned enum values

- Add hal_version to enum value fields as well, and add it to various doc outputs
- Improve HIDL metadata generation to work better with hidl-doc, and properly handle
  enum value additions in new hal versions
- Enable HIDL HAL 3.3 output

Test: Builds, hidl-gen/hidl-doc are happy with the HIDL output
Bug: 63629224
Change-Id: I64b31d9e8e6eda41268df0fc95962b52fcce7fee
diff --git a/camera/docs/HidlMetadata.mako b/camera/docs/HidlMetadata.mako
index 196dab5..c6bc6ea 100644
--- a/camera/docs/HidlMetadata.mako
+++ b/camera/docs/HidlMetadata.mako
@@ -14,13 +14,6 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-/**
- * Autogenerated from camera metadata definitions in
- * /system/media/camera/docs/metadata_definitions.xml
- * *** DO NOT EDIT BY HAND ***
- */
-
 <%!
   def annotated_type(entry):
     if entry.enum:
@@ -33,6 +26,12 @@
     return type
 %>\
 
+/*
+ * Autogenerated from camera metadata definitions in
+ * /system/media/camera/docs/metadata_definitions.xml
+ * *** DO NOT EDIT BY HAND ***
+ */
+
 package android.hardware.camera.metadata@${hal_major_version()}.${hal_minor_version()};
 
 % if first_hal_minor_version(hal_major_version()) != hal_minor_version():
@@ -42,13 +41,17 @@
   % endfor
 
 % endif
+<%    gotSections = False %>\
+% for idx, section in enumerate(find_all_sections_added_in_hal(metadata, hal_major_version(), hal_minor_version())):
+  % if idx == 0:
+<%    gotSections = True %>\
 /**
  * Top level hierarchy definitions for camera metadata. *_INFO sections are for
  * the static metadata that can be retrived without opening the camera device.
  */
 enum CameraMetadataSection : ${'uint32_t' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else 'android.hardware.camera.metadata@%d.%d::CameraMetadataSection' % (hal_major_version(), hal_minor_version()-1)} {
-% for idx, section in enumerate(find_all_sections_added_in_hal(metadata, hal_major_version(), hal_minor_version())):
-  % if idx == 0 and first_hal_minor_version(hal_major_version()) != hal_minor_version():
+  % endif
+  % if first_hal_minor_version(hal_major_version()) != hal_minor_version():
     ${path_name(section) | csym} =
         android.hardware.camera.metadata@${hal_major_version()}.${hal_minor_version()-1}::CameraMetadataSection::ANDROID_SECTION_COUNT,
   % else:
@@ -56,6 +59,7 @@
   % endif
 
 % endfor
+% if gotSections:
     ANDROID_SECTION_COUNT,
 
     VENDOR_SECTION = 0x8000,
@@ -75,50 +79,78 @@
 
 };
 
+% else:
+// No new metadata sections added in this revision
+
+% endif
 /**
- * Main enum for defining camera metadata tags. New entries must always go
- * before the section _END tag to preserve existing enumeration values.
+ * Main enumeration for defining camera metadata tags added in this revision
+ *
+ * <p>Partial documentation is included for each tag; for complete documentation, reference
+ * '/system/media/camera/docs/docs.html' in the corresponding Android source tree.</p>
  */
-enum CameraMetadataTag : ${'uint32_t' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else 'android.hardware.camera.metadata@%d.%d::CameraMetadataTag' % (hal_major_version(), hal_minor_version()-1)} {
+enum CameraMetadataTag : ${'uint32_t' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else '@%d.%d::CameraMetadataTag' % (hal_major_version(), hal_minor_version()-1)} {
     % for sec in find_all_sections(metadata):
 <%    gotEntries = False %>\
       % for idx,entry in enumerate(filter_added_in_hal_version(remove_synthetic(find_unique_entries(sec)), hal_major_version(), hal_minor_version())):
 <%      gotEntries = True %>\
+    /** ${entry.name} [${entry.kind}, ${annotated_type(entry)}, ${entry.applied_visibility}]
+        % if entry.description:
+     *
+${entry.description | hidldoc(metadata)}\
+        % endif
+     */
         % if idx == 0:
-    ${entry.name + " = " | csym,ljust(50)}// ${annotated_type(entry) | ljust(12) } | ${entry.applied_visibility}
           % if find_first_older_used_hal_version(sec, hal_major_version(), hal_minor_version()) == (0, 0):
-            CameraMetadataSectionStart:${path_name(find_parent_section(entry)) | csym}_START,
+    ${entry.name + " =" | csym} CameraMetadataSectionStart:${path_name(find_parent_section(entry)) | csym}_START,
           % else:
-            ${'android.hardware.camera.metadata@%d.%d' % find_first_older_used_hal_version(sec, hal_major_version(), hal_minor_version())}::CameraMetadataTag:${path_name(find_parent_section(entry)) | csym}_END,
+<%      prevVersion = find_first_older_used_hal_version(sec, hal_major_version(), hal_minor_version()) %>\
+    ${entry.name + " =" | csym} ${'android.hardware.camera.metadata@%d.%d' % prevVersion}::CameraMetadataTag:${path_name(find_parent_section(entry)) | csym}${'_END' if find_first_older_used_hal_version(sec, prevVersion[0], prevVersion[1]) == (0,0) else '_END_%d_%d' % prevVersion},
           % endif
         % else:
-    ${entry.name + "," | csym,ljust(50)}// ${annotated_type(entry) | ljust(12)} | ${entry.applied_visibility}
+    ${entry.name + "," | csym}
         % endif
+
       % endfor
       % if gotEntries:
-    ${path_name(sec) | csym}_END,
+    ${path_name(sec) | csym}${'_END' if first_hal_minor_version(hal_major_version()) == hal_minor_version() else '_END_%d_%d' % (hal_major_version(),hal_minor_version())},
 
       % endif
     %endfor
 };
 
-/**
+/*
  * Enumeration definitions for the various entries that need them
  */
 % for sec in find_all_sections(metadata):
-  % for entry in filter_added_in_hal_version(remove_synthetic(find_unique_entries(sec)), hal_major_version(), hal_minor_version()):
+  % for entry in filter_has_enum_values_added_in_hal_version(remove_synthetic(find_unique_entries(sec)), hal_major_version(), hal_minor_version()):
     % if entry.enum:
-// ${entry.name}
-enum CameraMetadataEnum${entry.name | pascal_case} : uint32_t {
+
+<%    isFirstValue = True %>\
+<%    prevValue = None %>\
       % for val in entry.enum.values:
-        % if val.id is None:
+        % if val.hal_major_version == hal_major_version() and val.hal_minor_version == hal_minor_version():
+          % if isFirstValue:
+              % if prevValue is None:
+/** ${entry.name} enumeration values
+              % else:
+/** ${entry.name} enumeration values added since v${prevValue.hal_major_version}.${prevValue.hal_minor_version}
+              % endif
+ * @see ${entry.name | csym}
+ */
+enum CameraMetadataEnum${entry.name | pascal_case} :${' uint32_t' if prevValue is None else '\n        @%d.%d::CameraMetadataEnum%s' % (prevValue.hal_major_version, prevValue.hal_minor_version, pascal_case(entry.name))} {
+          % endif
+          % if val.id is None:
     ${entry.name | csym}_${val.name},
-        % else:
+          % else:
     ${'%s_%s'%(csym(entry.name), val.name) | pad(65)} = ${val.id},
+          % endif
+<%        isFirstValue = False %>\
+        % else:
+<%        prevValue = val %>\
         % endif
       % endfor
 };
-
     % endif
   % endfor
-% endfor
+% endfor
\ No newline at end of file
diff --git a/camera/docs/camera_metadata_tags.mako b/camera/docs/camera_metadata_tags.mako
index 9351d26..7e951a2 100644
--- a/camera/docs/camera_metadata_tags.mako
+++ b/camera/docs/camera_metadata_tags.mako
@@ -99,9 +99,9 @@
 typedef enum camera_metadata_enum_${csym(entry.name).lower()} {
       % for val in entry.enum.values:
         % if val.id is None:
-    ${entry.name | csym}_${val.name},
+    ${entry.name | csym}_${val.name | pad(70)}, // HIDL v${val.hal_major_version}.${val.hal_minor_version}
         % else:
-    ${'%s_%s'%(csym(entry.name), val.name) | pad(65)} = ${val.id},
+    ${'%s_%s'%(csym(entry.name), val.name) | pad(70)} = ${val.id}, // HIDL v${val.hal_major_version}.${val.hal_minor_version}
         % endif
       % endfor
 } camera_metadata_enum_${csym(entry.name).lower()}_t;
diff --git a/camera/docs/docs.html b/camera/docs/docs.html
index 7c78a07..af021fa 100644
--- a/camera/docs/docs.html
+++ b/camera/docs/docs.html
@@ -1207,7 +1207,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
+                    <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
 <p>All advanced white balance adjustments (not specified
@@ -1217,7 +1217,7 @@
 this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
 capture rate relative to sensor raw output.<wbr/></p>
 <p>Advanced white balance adjustments above and beyond
@@ -1227,7 +1227,7 @@
 (or defaults if AWB has never been run).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
 quality but the capture rate might be reduced (relative to sensor
 raw output rate)</p>
@@ -1487,16 +1487,16 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
 relative to sensor raw output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
 reduced (relative to sensor raw output rate)</p></span>
                   </li>
@@ -1592,7 +1592,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">TRANSFORM_MATRIX</span>
+                    <span class="entry_type_enum_name">TRANSFORM_MATRIX (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use the <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a> matrix
 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> to do color conversion.<wbr/></p>
 <p>All advanced white balance adjustments (not specified
@@ -1602,7 +1602,7 @@
 this value to either FAST or HIGH_<wbr/>QUALITY.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Color correction processing must not slow down
 capture rate relative to sensor raw output.<wbr/></p>
 <p>Advanced white balance adjustments above and beyond
@@ -1612,7 +1612,7 @@
 (or defaults if AWB has never been run).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Color correction processing operates at improved
 quality but the capture rate might be reduced (relative to sensor
 raw output rate)</p>
@@ -1872,16 +1872,16 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No aberration correction is applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Aberration correction will not slow down capture rate
 relative to sensor raw output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Aberration correction operates at improved quality but the capture rate might be
 reduced (relative to sensor raw output rate)</p></span>
                   </li>
@@ -2086,23 +2086,23 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
 avoid banding problems.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">50HZ</span>
+                    <span class="entry_type_enum_name">50HZ (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
 avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">60HZ</span>
+                    <span class="entry_type_enum_name">60HZ (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
 avoid banding problems with 60Hz illumination
 sources.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AUTO</span>
+                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
 antibanding routine to the current illumination
 condition.<wbr/> This is the default mode if AUTO is
@@ -2279,12 +2279,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
 is free to update its parameters.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
 must not update the exposure and sensitivity parameters
 while the lock is active.<wbr/></p>
@@ -2383,7 +2383,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
 <p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
@@ -2402,7 +2402,7 @@
 override attempts to use this value to ON.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
 with no flash control.<wbr/></p>
 <p>The application's values for
@@ -2413,7 +2413,7 @@
 android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
+                    <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
 the camera's flash unit,<wbr/> firing it in low-light
 conditions.<wbr/></p>
@@ -2424,7 +2424,7 @@
 STILL_<wbr/>CAPTURE</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
+                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
 the camera's flash unit,<wbr/> always firing it for still
 captures.<wbr/></p>
@@ -2435,7 +2435,7 @@
 STILL_<wbr/>CAPTURE</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
+                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
 reduction.<wbr/></p>
 <p>If deemed necessary by the camera device,<wbr/> a red eye
@@ -2675,18 +2675,18 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">IDLE</span>
+                    <span class="entry_type_enum_name">IDLE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">START</span>
+                    <span class="entry_type_enum_name">START (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
 by the camera device.<wbr/></p>
 <p>The exact effect of the precapture trigger depends on
 the current AE mode and state.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CANCEL</span>
+                    <span class="entry_type_enum_name">CANCEL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
 precapture metering sequence,<wbr/> the auto-exposure routine will return to its
 initial state.<wbr/></p></span>
@@ -2805,13 +2805,13 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
 application.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AUTO</span>
+                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
 <p>In this mode,<wbr/> the lens does not move unless
 the autofocus trigger action is called.<wbr/> When that trigger
@@ -2824,7 +2824,7 @@
 and sets the AF state to INACTIVE.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MACRO</span>
+                    <span class="entry_type_enum_name">MACRO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
 <p>In this mode,<wbr/> the lens does not move unless the
 autofocus trigger action is called.<wbr/> When that trigger is
@@ -2839,7 +2839,7 @@
 INACTIVE.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
+                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
 position continually to attempt to provide a
 constantly-in-focus image stream.<wbr/></p>
@@ -2859,7 +2859,7 @@
 canceled.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
+                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
 position continually to attempt to provide a
 constantly-in-focus image stream.<wbr/></p>
@@ -2878,7 +2878,7 @@
 has just been started.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">EDOF</span>
+                    <span class="entry_type_enum_name">EDOF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
 <p>The camera device will produce images with an extended
 depth of field automatically; no special focusing
@@ -3073,15 +3073,15 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">IDLE</span>
+                    <span class="entry_type_enum_name">IDLE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">START</span>
+                    <span class="entry_type_enum_name">START (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CANCEL</span>
+                    <span class="entry_type_enum_name">CANCEL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
 state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
                   </li>
@@ -3169,13 +3169,13 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
 algorithm is free to update its parameters if in AUTO
 mode.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
 algorithm will not update its parameters while the lock
 is active.<wbr/></p></span>
@@ -3255,7 +3255,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
 <p>The application-selected color transform matrix
 (<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
@@ -3263,7 +3263,7 @@
 device for manual white balance control.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AUTO</span>
+                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
@@ -3272,7 +3272,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">INCANDESCENT</span>
+                    <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses incandescent light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -3286,7 +3286,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FLUORESCENT</span>
+                    <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses fluorescent light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -3300,7 +3300,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
+                    <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses warm fluorescent light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -3314,7 +3314,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DAYLIGHT</span>
+                    <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses daylight light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -3328,7 +3328,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
+                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses cloudy daylight light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -3339,7 +3339,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TWILIGHT</span>
+                    <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses twilight light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -3350,7 +3350,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SHADE</span>
+                    <span class="entry_type_enum_name">SHADE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses shade light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -3533,30 +3533,30 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">CUSTOM</span>
+                    <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
 categories.<wbr/> The camera device will default to preview-like
 behavior.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PREVIEW</span>
+                    <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
 <p>The precapture trigger may be used to start off a metering
 w/<wbr/>flash sequence.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">STILL_CAPTURE</span>
+                    <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a still capture-type
 use case.<wbr/></p>
 <p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">VIDEO_RECORD</span>
+                    <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a video recording
 use case.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
+                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
 image while recording video) use case.<wbr/></p>
 <p>The camera device should take the highest-quality image
@@ -3564,14 +3564,14 @@
 frame rate of video recording.<wbr/>  </p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
 application will stream full-resolution images and
 reprocess one or several later for a final
 capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MANUAL</span>
+                    <span class="entry_type_enum_name">MANUAL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
 the applications want to directly control the capture parameters.<wbr/></p>
 <p>For example,<wbr/> the application may wish to manually control
@@ -3641,56 +3641,56 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MONO</span>
+                    <span class="entry_type_enum_name">MONO (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
 a single color.<wbr/></p>
 <p>This will typically be grayscale.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">NEGATIVE</span>
+                    <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
 are inverted.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SOLARIZE</span>
+                    <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
 image is wholly or partially reversed in
 tone.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SEPIA</span>
+                    <span class="entry_type_enum_name">SEPIA (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
 gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">POSTERIZE</span>
+                    <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
 discrete regions of tone rather than a continuous
 gradient of tones.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">WHITEBOARD</span>
+                    <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
 as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BLACKBOARD</span>
+                    <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
 as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AQUA</span>
+                    <span class="entry_type_enum_name">AQUA (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
                   </li>
@@ -3756,7 +3756,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
 <p>All control by the device's metering and focusing (3A)
 routines is disabled,<wbr/> and no other settings in
@@ -3771,14 +3771,14 @@
 can be immediately applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AUTO</span>
+                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
 <p>Manual control of capture parameters is disabled.<wbr/> All
 controls in android.<wbr/>control.<wbr/>* besides sceneMode take
 effect.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
+                    <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
 <p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
@@ -3790,7 +3790,7 @@
 contain some modes other than DISABLED).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
+                    <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
 used by camera device background auto-exposure,<wbr/> auto-white balance and
@@ -3873,12 +3873,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">DISABLED</span>
+                    <span class="entry_type_enum_name">DISABLED (v3.2)</span>
                     <span class="entry_type_enum_value">0</span>
                     <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FACE_PRIORITY</span>
+                    <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
 detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
 auto-exposure routines.<wbr/></p>
@@ -3891,91 +3891,91 @@
 remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ACTION</span>
+                    <span class="entry_type_enum_name">ACTION (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
 <p>Similar to SPORTS.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PORTRAIT</span>
+                    <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">LANDSCAPE</span>
+                    <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">NIGHT</span>
+                    <span class="entry_type_enum_name">NIGHT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
+                    <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
 settings.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">THEATRE</span>
+                    <span class="entry_type_enum_name">THEATRE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
 remain off.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BEACH</span>
+                    <span class="entry_type_enum_name">BEACH (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SNOW</span>
+                    <span class="entry_type_enum_name">SNOW (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SUNSET</span>
+                    <span class="entry_type_enum_name">SUNSET (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">STEADYPHOTO</span>
+                    <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
 device motion (for example: due to hand shake).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FIREWORKS</span>
+                    <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SPORTS</span>
+                    <span class="entry_type_enum_name">SPORTS (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
 <p>Similar to ACTION.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PARTY</span>
+                    <span class="entry_type_enum_name">PARTY (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
 people.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CANDLELIGHT</span>
+                    <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
 is a flame.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BARCODE</span>
+                    <span class="entry_type_enum_name">BARCODE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
 for use by camera applications that wish to read the
 barcode value.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_SPEED_VIDEO</span>
+                    <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
                     <span class="entry_type_enum_deprecated">[deprecated]</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
@@ -4040,7 +4040,7 @@
 the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HDR</span>
+                    <span class="entry_type_enum_name">HDR (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
 <p>In this scene mode,<wbr/> the camera device captures images
@@ -4085,7 +4085,7 @@
 the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT</span>
+                    <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_hidden">[hidden]</span>
                     <span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
@@ -4111,7 +4111,7 @@
 remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DEVICE_CUSTOM_START</span>
+                    <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_hidden">[hidden]</span>
                     <span class="entry_type_enum_value">100</span>
@@ -4120,7 +4120,7 @@
 customized scene modes.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DEVICE_CUSTOM_END</span>
+                    <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_hidden">[hidden]</span>
                     <span class="entry_type_enum_value">127</span>
@@ -4214,11 +4214,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
                   </li>
                 </ul>
@@ -4367,12 +4367,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FALSE</span>
+                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
 after previous requests.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TRUE</span>
+                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
 captured before previous requests.<wbr/></p></span>
                   </li>
@@ -5621,10 +5621,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FALSE</span>
+                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TRUE</span>
+                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                   </li>
                 </ul>
 
@@ -5683,10 +5683,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FALSE</span>
+                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TRUE</span>
+                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                   </li>
                 </ul>
 
@@ -5961,23 +5961,23 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will not adjust exposure duration to
 avoid banding problems.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">50HZ</span>
+                    <span class="entry_type_enum_name">50HZ (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
 avoid banding problems with 50Hz illumination sources.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">60HZ</span>
+                    <span class="entry_type_enum_name">60HZ (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will adjust exposure duration to
 avoid banding problems with 60Hz illumination
 sources.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AUTO</span>
+                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will automatically adapt its
 antibanding routine to the current illumination
 condition.<wbr/> This is the default mode if AUTO is
@@ -6154,12 +6154,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is disabled; the AE algorithm
 is free to update its parameters.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Auto-exposure lock is enabled; the AE algorithm
 must not update the exposure and sensitivity parameters
 while the lock is active.<wbr/></p>
@@ -6258,7 +6258,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is disabled.<wbr/></p>
 <p>The application-selected <a href="#controls_android.sensor.exposureTime">android.<wbr/>sensor.<wbr/>exposure<wbr/>Time</a>,<wbr/>
 <a href="#controls_android.sensor.sensitivity">android.<wbr/>sensor.<wbr/>sensitivity</a> and
@@ -6277,7 +6277,7 @@
 override attempts to use this value to ON.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's autoexposure routine is active,<wbr/>
 with no flash control.<wbr/></p>
 <p>The application's values for
@@ -6288,7 +6288,7 @@
 android.<wbr/>flash.<wbr/>* fields.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON_AUTO_FLASH</span>
+                    <span class="entry_type_enum_name">ON_AUTO_FLASH (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
 the camera's flash unit,<wbr/> firing it in low-light
 conditions.<wbr/></p>
@@ -6299,7 +6299,7 @@
 STILL_<wbr/>CAPTURE</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH</span>
+                    <span class="entry_type_enum_name">ON_ALWAYS_FLASH (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Like ON,<wbr/> except that the camera device also controls
 the camera's flash unit,<wbr/> always firing it for still
 captures.<wbr/></p>
@@ -6310,7 +6310,7 @@
 STILL_<wbr/>CAPTURE</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE</span>
+                    <span class="entry_type_enum_name">ON_AUTO_FLASH_REDEYE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Like ON_<wbr/>AUTO_<wbr/>FLASH,<wbr/> but with automatic red eye
 reduction.<wbr/></p>
 <p>If deemed necessary by the camera device,<wbr/> a red eye
@@ -6550,18 +6550,18 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">IDLE</span>
+                    <span class="entry_type_enum_name">IDLE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">START</span>
+                    <span class="entry_type_enum_name">START (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The precapture metering sequence will be started
 by the camera device.<wbr/></p>
 <p>The exact effect of the precapture trigger depends on
 the current AE mode and state.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CANCEL</span>
+                    <span class="entry_type_enum_name">CANCEL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device will cancel any currently active or completed
 precapture metering sequence,<wbr/> the auto-exposure routine will return to its
 initial state.<wbr/></p></span>
@@ -6680,36 +6680,36 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">INACTIVE</span>
+                    <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AE is off or recently reset.<wbr/></p>
 <p>When a camera device is opened,<wbr/> it starts in
 this state.<wbr/> This is a transient state,<wbr/> the camera device may skip reporting
 this state in capture result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SEARCHING</span>
+                    <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AE doesn't yet have a good set of control values
 for the current scene.<wbr/></p>
 <p>This is a transient state,<wbr/> the camera device may skip
 reporting this state in capture result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CONVERGED</span>
+                    <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AE has a good set of control values for the
 current scene.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">LOCKED</span>
+                    <span class="entry_type_enum_name">LOCKED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AE has been locked.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FLASH_REQUIRED</span>
+                    <span class="entry_type_enum_name">FLASH_REQUIRED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AE has a good set of control values,<wbr/> but flash
 needs to be fired for good quality still
 capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PRECAPTURE</span>
+                    <span class="entry_type_enum_name">PRECAPTURE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AE has been asked to do a precapture sequence
 and is currently executing it.<wbr/></p>
 <p>Precapture can be triggered through setting
@@ -6984,13 +6984,13 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The auto-focus routine does not control the lens;
 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> is controlled by the
 application.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AUTO</span>
+                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Basic automatic focus mode.<wbr/></p>
 <p>In this mode,<wbr/> the lens does not move unless
 the autofocus trigger action is called.<wbr/> When that trigger
@@ -7003,7 +7003,7 @@
 and sets the AF state to INACTIVE.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MACRO</span>
+                    <span class="entry_type_enum_name">MACRO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Close-up focusing mode.<wbr/></p>
 <p>In this mode,<wbr/> the lens does not move unless the
 autofocus trigger action is called.<wbr/> When that trigger is
@@ -7018,7 +7018,7 @@
 INACTIVE.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO</span>
+                    <span class="entry_type_enum_name">CONTINUOUS_VIDEO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
 position continually to attempt to provide a
 constantly-in-focus image stream.<wbr/></p>
@@ -7038,7 +7038,7 @@
 canceled.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE</span>
+                    <span class="entry_type_enum_name">CONTINUOUS_PICTURE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>In this mode,<wbr/> the AF algorithm modifies the lens
 position continually to attempt to provide a
 constantly-in-focus image stream.<wbr/></p>
@@ -7057,7 +7057,7 @@
 has just been started.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">EDOF</span>
+                    <span class="entry_type_enum_name">EDOF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Extended depth of field (digital focus) mode.<wbr/></p>
 <p>The camera device will produce images with an extended
 depth of field automatically; no special focusing
@@ -7252,15 +7252,15 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">IDLE</span>
+                    <span class="entry_type_enum_name">IDLE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The trigger is idle.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">START</span>
+                    <span class="entry_type_enum_name">START (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Autofocus will trigger now.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CANCEL</span>
+                    <span class="entry_type_enum_name">CANCEL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Autofocus will return to its initial
 state,<wbr/> and cancel any currently active trigger.<wbr/></p></span>
                   </li>
@@ -7348,7 +7348,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">INACTIVE</span>
+                    <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AF is off or has not yet tried to scan/<wbr/>been asked
 to scan.<wbr/></p>
 <p>When a camera device is opened,<wbr/> it starts in this
@@ -7357,7 +7357,7 @@
 result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PASSIVE_SCAN</span>
+                    <span class="entry_type_enum_name">PASSIVE_SCAN (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AF is currently performing an AF scan initiated the
 camera device in a continuous autofocus mode.<wbr/></p>
 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
@@ -7365,7 +7365,7 @@
 capture result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PASSIVE_FOCUSED</span>
+                    <span class="entry_type_enum_name">PASSIVE_FOCUSED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AF currently believes it is in focus,<wbr/> but may
 restart scanning at any time.<wbr/></p>
 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient
@@ -7373,7 +7373,7 @@
 capture result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ACTIVE_SCAN</span>
+                    <span class="entry_type_enum_name">ACTIVE_SCAN (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AF is performing an AF scan because it was
 triggered by AF trigger.<wbr/></p>
 <p>Only used by AUTO or MACRO AF modes.<wbr/> This is a transient
@@ -7381,7 +7381,7 @@
 capture result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FOCUSED_LOCKED</span>
+                    <span class="entry_type_enum_name">FOCUSED_LOCKED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AF believes it is focused correctly and has locked
 focus.<wbr/></p>
 <p>This state is reached only after an explicit START AF trigger has been
@@ -7390,7 +7390,7 @@
 a new AF trigger is sent to the camera device (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED</span>
+                    <span class="entry_type_enum_name">NOT_FOCUSED_LOCKED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AF has failed to focus successfully and has locked
 focus.<wbr/></p>
 <p>This state is reached only after an explicit START AF trigger has been
@@ -7399,7 +7399,7 @@
 a new AF trigger is sent to the camera device (<a href="#controls_android.control.afTrigger">android.<wbr/>control.<wbr/>af<wbr/>Trigger</a>).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PASSIVE_UNFOCUSED</span>
+                    <span class="entry_type_enum_name">PASSIVE_UNFOCUSED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AF finished a passive scan without finding focus,<wbr/>
 and may restart scanning at any time.<wbr/></p>
 <p>Only used by CONTINUOUS_<wbr/>* AF modes.<wbr/> This is a transient state,<wbr/> the camera
@@ -7894,13 +7894,13 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is disabled; the AWB
 algorithm is free to update its parameters if in AUTO
 mode.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Auto-white balance lock is enabled; the AWB
 algorithm will not update its parameters while the lock
 is active.<wbr/></p></span>
@@ -7980,7 +7980,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled.<wbr/></p>
 <p>The application-selected color transform matrix
 (<a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>) and gains
@@ -7988,7 +7988,7 @@
 device for manual white balance control.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AUTO</span>
+                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is active.<wbr/></p>
 <p>The application's values for <a href="#controls_android.colorCorrection.transform">android.<wbr/>color<wbr/>Correction.<wbr/>transform</a>
 and <a href="#controls_android.colorCorrection.gains">android.<wbr/>color<wbr/>Correction.<wbr/>gains</a> are ignored.<wbr/>
@@ -7997,7 +7997,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">INCANDESCENT</span>
+                    <span class="entry_type_enum_name">INCANDESCENT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses incandescent light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -8011,7 +8011,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FLUORESCENT</span>
+                    <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses fluorescent light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -8025,7 +8025,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">WARM_FLUORESCENT</span>
+                    <span class="entry_type_enum_name">WARM_FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses warm fluorescent light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -8039,7 +8039,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DAYLIGHT</span>
+                    <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses daylight light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -8053,7 +8053,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT</span>
+                    <span class="entry_type_enum_name">CLOUDY_DAYLIGHT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses cloudy daylight light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -8064,7 +8064,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TWILIGHT</span>
+                    <span class="entry_type_enum_name">TWILIGHT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses twilight light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -8075,7 +8075,7 @@
 will be available in the capture result for this request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SHADE</span>
+                    <span class="entry_type_enum_name">SHADE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device's auto-white balance routine is disabled;
 the camera device uses shade light as the assumed scene
 illumination for white balance.<wbr/></p>
@@ -8258,30 +8258,30 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">CUSTOM</span>
+                    <span class="entry_type_enum_name">CUSTOM (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The goal of this request doesn't fall into the other
 categories.<wbr/> The camera device will default to preview-like
 behavior.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PREVIEW</span>
+                    <span class="entry_type_enum_name">PREVIEW (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a preview-like use case.<wbr/></p>
 <p>The precapture trigger may be used to start off a metering
 w/<wbr/>flash sequence.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">STILL_CAPTURE</span>
+                    <span class="entry_type_enum_name">STILL_CAPTURE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a still capture-type
 use case.<wbr/></p>
 <p>If the flash unit is under automatic control,<wbr/> it may fire as needed.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">VIDEO_RECORD</span>
+                    <span class="entry_type_enum_name">VIDEO_RECORD (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a video recording
 use case.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT</span>
+                    <span class="entry_type_enum_name">VIDEO_SNAPSHOT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a video snapshot (still
 image while recording video) use case.<wbr/></p>
 <p>The camera device should take the highest-quality image
@@ -8289,14 +8289,14 @@
 frame rate of video recording.<wbr/>  </p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for a ZSL usecase; the
 application will stream full-resolution images and
 reprocess one or several later for a final
 capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MANUAL</span>
+                    <span class="entry_type_enum_name">MANUAL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This request is for manual capture use case where
 the applications want to directly control the capture parameters.<wbr/></p>
 <p>For example,<wbr/> the application may wish to manually control
@@ -8366,7 +8366,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">INACTIVE</span>
+                    <span class="entry_type_enum_name">INACTIVE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AWB is not in auto mode,<wbr/> or has not yet started metering.<wbr/></p>
 <p>When a camera device is opened,<wbr/> it starts in this
 state.<wbr/> This is a transient state,<wbr/> the camera device may
@@ -8374,19 +8374,19 @@
 result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SEARCHING</span>
+                    <span class="entry_type_enum_name">SEARCHING (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AWB doesn't yet have a good set of control
 values for the current scene.<wbr/></p>
 <p>This is a transient state,<wbr/> the camera device
 may skip reporting this state in capture result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CONVERGED</span>
+                    <span class="entry_type_enum_name">CONVERGED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AWB has a good set of control values for the
 current scene.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">LOCKED</span>
+                    <span class="entry_type_enum_name">LOCKED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>AWB has been locked.<wbr/></p></span>
                   </li>
                 </ul>
@@ -8556,56 +8556,56 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No color effect will be applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MONO</span>
+                    <span class="entry_type_enum_name">MONO (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "monocolor" effect where the image is mapped into
 a single color.<wbr/></p>
 <p>This will typically be grayscale.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">NEGATIVE</span>
+                    <span class="entry_type_enum_name">NEGATIVE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "photo-negative" effect where the image's colors
 are inverted.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SOLARIZE</span>
+                    <span class="entry_type_enum_name">SOLARIZE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "solarisation" effect (Sabattier effect) where the
 image is wholly or partially reversed in
 tone.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SEPIA</span>
+                    <span class="entry_type_enum_name">SEPIA (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "sepia" effect where the image is mapped into warm
 gray,<wbr/> red,<wbr/> and brown tones.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">POSTERIZE</span>
+                    <span class="entry_type_enum_name">POSTERIZE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "posterization" effect where the image uses
 discrete regions of tone rather than a continuous
 gradient of tones.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">WHITEBOARD</span>
+                    <span class="entry_type_enum_name">WHITEBOARD (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "whiteboard" effect where the image is typically displayed
 as regions of white,<wbr/> with black or grey details.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BLACKBOARD</span>
+                    <span class="entry_type_enum_name">BLACKBOARD (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>A "blackboard" effect where the image is typically displayed
 as regions of black,<wbr/> with white or grey details.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AQUA</span>
+                    <span class="entry_type_enum_name">AQUA (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>An "aqua" effect where a blue hue is added to the image.<wbr/></p></span>
                   </li>
@@ -8671,7 +8671,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Full application control of pipeline.<wbr/></p>
 <p>All control by the device's metering and focusing (3A)
 routines is disabled,<wbr/> and no other settings in
@@ -8686,14 +8686,14 @@
 can be immediately applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">AUTO</span>
+                    <span class="entry_type_enum_name">AUTO (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use settings for each individual 3A routine.<wbr/></p>
 <p>Manual control of capture parameters is disabled.<wbr/> All
 controls in android.<wbr/>control.<wbr/>* besides sceneMode take
 effect.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">USE_SCENE_MODE</span>
+                    <span class="entry_type_enum_name">USE_SCENE_MODE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Use a specific scene mode.<wbr/></p>
 <p>Enabling this disables control.<wbr/>aeMode,<wbr/> control.<wbr/>awbMode and
@@ -8705,7 +8705,7 @@
 contain some modes other than DISABLED).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">OFF_KEEP_STATE</span>
+                    <span class="entry_type_enum_name">OFF_KEEP_STATE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Same as OFF mode,<wbr/> except that this capture will not be
 used by camera device background auto-exposure,<wbr/> auto-white balance and
@@ -8788,12 +8788,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">DISABLED</span>
+                    <span class="entry_type_enum_name">DISABLED (v3.2)</span>
                     <span class="entry_type_enum_value">0</span>
                     <span class="entry_type_enum_notes"><p>Indicates that no scene modes are set for a given capture request.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FACE_PRIORITY</span>
+                    <span class="entry_type_enum_name">FACE_PRIORITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>If face detection support exists,<wbr/> use face
 detection data for auto-focus,<wbr/> auto-white balance,<wbr/> and
 auto-exposure routines.<wbr/></p>
@@ -8806,91 +8806,91 @@
 remain active when FACE_<wbr/>PRIORITY is set.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ACTION</span>
+                    <span class="entry_type_enum_name">ACTION (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving objects.<wbr/></p>
 <p>Similar to SPORTS.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PORTRAIT</span>
+                    <span class="entry_type_enum_name">PORTRAIT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">LANDSCAPE</span>
+                    <span class="entry_type_enum_name">LANDSCAPE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for photos of distant macroscopic objects.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">NIGHT</span>
+                    <span class="entry_type_enum_name">NIGHT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for low-light settings.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">NIGHT_PORTRAIT</span>
+                    <span class="entry_type_enum_name">NIGHT_PORTRAIT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for still photos of people in low-light
 settings.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">THEATRE</span>
+                    <span class="entry_type_enum_name">THEATRE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings where flash must
 remain off.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BEACH</span>
+                    <span class="entry_type_enum_name">BEACH (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor beach settings.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SNOW</span>
+                    <span class="entry_type_enum_name">SNOW (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for bright,<wbr/> outdoor settings containing snow.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SUNSET</span>
+                    <span class="entry_type_enum_name">SUNSET (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for scenes of the setting sun.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">STEADYPHOTO</span>
+                    <span class="entry_type_enum_name">STEADYPHOTO (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized to avoid blurry photos due to small amounts of
 device motion (for example: due to hand shake).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FIREWORKS</span>
+                    <span class="entry_type_enum_name">FIREWORKS (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for nighttime photos of fireworks.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SPORTS</span>
+                    <span class="entry_type_enum_name">SPORTS (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for photos of quickly moving people.<wbr/></p>
 <p>Similar to ACTION.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PARTY</span>
+                    <span class="entry_type_enum_name">PARTY (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for dim,<wbr/> indoor settings with multiple moving
 people.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CANDLELIGHT</span>
+                    <span class="entry_type_enum_name">CANDLELIGHT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for dim settings where the main light source
 is a flame.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BARCODE</span>
+                    <span class="entry_type_enum_name">BARCODE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optimized for accurately capturing a photo of barcode
 for use by camera applications that wish to read the
 barcode value.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_SPEED_VIDEO</span>
+                    <span class="entry_type_enum_name">HIGH_SPEED_VIDEO (v3.2)</span>
                     <span class="entry_type_enum_deprecated">[deprecated]</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>This is deprecated,<wbr/> please use <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>
@@ -8955,7 +8955,7 @@
 the application avoids unnecessary scene mode switch as much as possible.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HDR</span>
+                    <span class="entry_type_enum_name">HDR (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Turn on a device-specific high dynamic range (HDR) mode.<wbr/></p>
 <p>In this scene mode,<wbr/> the camera device captures images
@@ -9000,7 +9000,7 @@
 the SCENE_<wbr/>MODE was not enabled at all.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT</span>
+                    <span class="entry_type_enum_name">FACE_PRIORITY_LOW_LIGHT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_hidden">[hidden]</span>
                     <span class="entry_type_enum_notes"><p>Same as FACE_<wbr/>PRIORITY scene mode,<wbr/> except that the camera
@@ -9026,7 +9026,7 @@
 remain active when FACE_<wbr/>PRIORITY_<wbr/>LOW_<wbr/>LIGHT is set.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DEVICE_CUSTOM_START</span>
+                    <span class="entry_type_enum_name">DEVICE_CUSTOM_START (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_hidden">[hidden]</span>
                     <span class="entry_type_enum_value">100</span>
@@ -9035,7 +9035,7 @@
 customized scene modes.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DEVICE_CUSTOM_END</span>
+                    <span class="entry_type_enum_name">DEVICE_CUSTOM_END (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_hidden">[hidden]</span>
                     <span class="entry_type_enum_value">127</span>
@@ -9129,11 +9129,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Video stabilization is disabled.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Video stabilization is enabled.<wbr/></p></span>
                   </li>
                 </ul>
@@ -9282,12 +9282,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FALSE</span>
+                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE must be captured
 after previous requests.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TRUE</span>
+                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Requests with <a href="#controls_android.control.captureIntent">android.<wbr/>control.<wbr/>capture<wbr/>Intent</a> == STILL_<wbr/>CAPTURE may or may not be
 captured before previous requests.<wbr/></p></span>
                   </li>
@@ -9373,11 +9373,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">NOT_DETECTED</span>
+                    <span class="entry_type_enum_name">NOT_DETECTED (v3.3)</span>
                     <span class="entry_type_enum_notes"><p>Scene change is not detected within the AF region(s).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DETECTED</span>
+                    <span class="entry_type_enum_name">DETECTED (v3.3)</span>
                     <span class="entry_type_enum_notes"><p>Scene change is detected within the AF region(s).<wbr/></p></span>
                   </li>
                 </ul>
@@ -9473,12 +9473,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Minimal or no slowdown of frame rate compared to
 Bayer RAW output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Improved processing quality but the frame rate might be slowed down
 relative to raw output.<wbr/></p></span>
                   </li>
@@ -9564,21 +9564,21 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
 relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
 slow down frame rate relative to sensor.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
 levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
@@ -9863,21 +9863,21 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No edge enhancement is applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Apply edge enhancement at a quality level that does not slow down frame rate
 relative to sensor output.<wbr/> It may be the same as OFF if edge enhancement will
 slow down frame rate relative to sensor.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Apply high-quality edge enhancement,<wbr/> at a cost of possibly reduced output frame rate.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Edge enhancement is applied at different
 levels for different output streams,<wbr/> based on resolution.<wbr/> Streams at maximum recording
@@ -10131,16 +10131,16 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SINGLE</span>
+                    <span class="entry_type_enum_name">SINGLE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
 for this capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TORCH</span>
+                    <span class="entry_type_enum_name">TORCH (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
                   </li>
                 </ul>
@@ -10241,10 +10241,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FALSE</span>
+                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TRUE</span>
+                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                   </li>
                 </ul>
 
@@ -10598,16 +10598,16 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Do not fire the flash for this capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SINGLE</span>
+                    <span class="entry_type_enum_name">SINGLE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>If the flash is available and charged,<wbr/> fire flash
 for this capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TORCH</span>
+                    <span class="entry_type_enum_name">TORCH (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Transition flash to continuously on.<wbr/></p></span>
                   </li>
                 </ul>
@@ -10678,23 +10678,23 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">UNAVAILABLE</span>
+                    <span class="entry_type_enum_name">UNAVAILABLE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No flash on camera.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CHARGING</span>
+                    <span class="entry_type_enum_name">CHARGING (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Flash is charging and cannot be fired.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">READY</span>
+                    <span class="entry_type_enum_name">READY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Flash is ready to fire.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FIRED</span>
+                    <span class="entry_type_enum_name">FIRED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Flash fired for this capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PARTIAL</span>
+                    <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Flash partially illuminated this frame.<wbr/></p>
 <p>This is usually due to the next or previous frame having
 the flash fire,<wbr/> and the flash spilling into this capture
@@ -10798,20 +10798,20 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
 <p>The frame rate must not be reduced relative to sensor raw output
 for this option.<wbr/></p>
 <p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
 rate relative to sensor raw output.<wbr/></p>
 <p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
 of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
 <p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
@@ -11004,20 +11004,20 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No hot pixel correction is applied.<wbr/></p>
 <p>The frame rate must not be reduced relative to sensor raw output
 for this option.<wbr/></p>
 <p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Hot pixel correction is applied,<wbr/> without reducing frame
 rate relative to sensor raw output.<wbr/></p>
 <p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>High-quality hot pixel correction is applied,<wbr/> at a cost
 of possibly reduced frame rate relative to sensor raw output.<wbr/></p>
 <p>The hotpixel map may be returned in <a href="#dynamic_android.statistics.hotPixelMap">android.<wbr/>statistics.<wbr/>hot<wbr/>Pixel<wbr/>Map</a>.<wbr/></p></span>
@@ -12601,11 +12601,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
                   </li>
@@ -13146,7 +13146,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">UNCALIBRATED</span>
+                    <span class="entry_type_enum_name">UNCALIBRATED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The lens focus distance is not accurate,<wbr/> and the units used for
 <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a> do not correspond to any physical units.<wbr/></p>
 <p>Setting the lens to the same focus distance on separate occasions may
@@ -13157,7 +13157,7 @@
 represents the farthest focus.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">APPROXIMATE</span>
+                    <span class="entry_type_enum_name">APPROXIMATE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters.<wbr/></p>
 <p>However,<wbr/> setting the lens to the same focus distance
 on separate occasions may result in a different real
@@ -13166,7 +13166,7 @@
 mechanism,<wbr/> and the device temperature.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CALIBRATED</span>
+                    <span class="entry_type_enum_name">CALIBRATED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The lens focus distance is measured in diopters,<wbr/> and
 is calibrated.<wbr/></p>
 <p>The lens mechanism is calibrated so that setting the
@@ -13260,15 +13260,15 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FRONT</span>
+                    <span class="entry_type_enum_name">FRONT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device faces the same direction as the device's screen.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BACK</span>
+                    <span class="entry_type_enum_name">BACK (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device faces the opposite direction as the device's screen.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">EXTERNAL</span>
+                    <span class="entry_type_enum_name">EXTERNAL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device is an external camera,<wbr/> and has no fixed facing relative to the
 device's screen.<wbr/></p></span>
                   </li>
@@ -14021,11 +14021,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Optical stabilization is unavailable.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Optical stabilization is enabled.<wbr/></p></span>
                   </li>
@@ -14103,12 +14103,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">STATIONARY</span>
+                    <span class="entry_type_enum_name">STATIONARY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The lens parameters (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
 <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> and <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) are not changing.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MOVING</span>
+                    <span class="entry_type_enum_name">MOVING (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>One or several of the lens parameters
 (<a href="#controls_android.lens.focalLength">android.<wbr/>lens.<wbr/>focal<wbr/>Length</a>,<wbr/> <a href="#controls_android.lens.focusDistance">android.<wbr/>lens.<wbr/>focus<wbr/>Distance</a>,<wbr/>
 <a href="#controls_android.lens.filterDensity">android.<wbr/>lens.<wbr/>filter<wbr/>Density</a> or <a href="#controls_android.lens.aperture">android.<wbr/>lens.<wbr/>aperture</a>) is
@@ -14579,28 +14579,28 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
 output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
 relative to sensor.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
 rate relative to sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MINIMAL</span>
+                    <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
 sensor output.<wbr/> </p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
 based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
@@ -14892,28 +14892,28 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No noise reduction is applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Noise reduction is applied without reducing frame rate relative to sensor
 output.<wbr/> It may be the same as OFF if noise reduction will reduce frame rate
 relative to sensor.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>High-quality noise reduction is applied,<wbr/> at the cost of possibly reduced frame
 rate relative to sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MINIMAL</span>
+                    <span class="entry_type_enum_name">MINIMAL (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>MINIMAL noise reduction is applied without reducing frame rate relative to
 sensor output.<wbr/> </p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG</span>
+                    <span class="entry_type_enum_name">ZERO_SHUTTER_LAG (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Noise reduction is applied at different levels for different output streams,<wbr/>
 based on resolution.<wbr/> Streams at maximum recording resolution (see <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">CameraDevice#createCaptureSession</a>)
@@ -15335,12 +15335,12 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FINAL</span>
+                    <span class="entry_type_enum_name">FINAL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The last or only metadata result buffer
 for this capture.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PARTIAL</span>
+                    <span class="entry_type_enum_name">PARTIAL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>A partial buffer of result metadata for this
 capture.<wbr/> More result buffers for this capture will be sent
 by the camera device,<wbr/> the last of which will be marked
@@ -15613,7 +15613,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">NONE</span>
+                    <span class="entry_type_enum_name">NONE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
 for application-bound buffer data.<wbr/> If no
 application-bound streams exist,<wbr/> no frame should be
@@ -15624,7 +15624,7 @@
 included with any output stream buffers</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FULL</span>
+                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
 only be produced if they are separately
 enabled</p></span>
@@ -15745,13 +15745,13 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">CAPTURE</span>
+                    <span class="entry_type_enum_name">CAPTURE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Capture a new image from the imaging hardware,<wbr/>
 and process it according to the
 settings</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">REPROCESS</span>
+                    <span class="entry_type_enum_name">REPROCESS (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Process previously captured data; the
 <a href="#controls_android.request.inputStreams">android.<wbr/>request.<wbr/>input<wbr/>Streams</a> parameter determines the
 source reprocessing stream.<wbr/> TODO: Mark dynamic metadata
@@ -16393,7 +16393,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">BACKWARD_COMPATIBLE</span>
+                    <span class="entry_type_enum_name">BACKWARD_COMPATIBLE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The minimal set of capabilities that every camera
 device (regardless of <a href="#static_android.info.supportedHardwareLevel">android.<wbr/>info.<wbr/>supported<wbr/>Hardware<wbr/>Level</a>)
 supports.<wbr/></p>
@@ -16406,7 +16406,7 @@
 not standard color output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MANUAL_SENSOR</span>
+                    <span class="entry_type_enum_name">MANUAL_SENSOR (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>The camera device can be manually controlled (3A algorithms such
 as auto-exposure,<wbr/> and auto-focus can be bypassed).<wbr/>
@@ -16456,7 +16456,7 @@
 zero for each supported size-format combination.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">MANUAL_POST_PROCESSING</span>
+                    <span class="entry_type_enum_name">MANUAL_POST_PROCESSING (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>The camera device post-processing stages can be manually controlled.<wbr/>
 The camera device supports basic manual control of the image post-processing
@@ -16502,7 +16502,7 @@
 controls,<wbr/> but this capability only covers the above list of controls.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">RAW</span>
+                    <span class="entry_type_enum_name">RAW (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>The camera device supports outputting RAW buffers and
 metadata for interpreting them.<wbr/></p>
@@ -16520,7 +16520,7 @@
 </ul></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PRIVATE_REPROCESSING</span>
+                    <span class="entry_type_enum_name">PRIVATE_REPROCESSING (v3.2)</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>
@@ -16553,7 +16553,7 @@
 </ul></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">READ_SENSOR_SETTINGS</span>
+                    <span class="entry_type_enum_name">READ_SENSOR_SETTINGS (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>The camera device supports accurately reporting the sensor settings for many of
 the sensor controls while the built-in 3A algorithm is running.<wbr/>  This allows
@@ -16579,7 +16579,7 @@
 always be included if the MANUAL_<wbr/>SENSOR capability is available.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BURST_CAPTURE</span>
+                    <span class="entry_type_enum_name">BURST_CAPTURE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>The camera device supports capturing high-resolution images at &gt;= 20 frames per
 second,<wbr/> in at least the uncompressed YUV format,<wbr/> when post-processing settings are set
@@ -16588,7 +16588,7 @@
 resolution of the device,<wbr/> whichever is smaller.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">YUV_REPROCESSING</span>
+                    <span class="entry_type_enum_name">YUV_REPROCESSING (v3.2)</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
 PRIVATE_<wbr/>REPROCESSING,<wbr/> This capability requires the camera device to support the
@@ -16622,7 +16622,7 @@
 </ul></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DEPTH_OUTPUT</span>
+                    <span class="entry_type_enum_name">DEPTH_OUTPUT (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>The camera device can produce depth measurements from its field of view.<wbr/></p>
 <p>This capability requires the camera device to support the following:</p>
@@ -16654,7 +16654,7 @@
 rate,<wbr/> including depth stall time.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CONSTRAINED_HIGH_SPEED_VIDEO</span>
+                    <span class="entry_type_enum_name">CONSTRAINED_HIGH_SPEED_VIDEO (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>The device supports constrained high speed video recording (frame rate &gt;=120fps) use
 case.<wbr/> The camera device will support high speed capture session created by <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createConstrainedHighSpeedCaptureSession">CameraDevice#createConstrainedHighSpeedCaptureSession</a>,<wbr/> which
@@ -17197,7 +17197,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">NONE</span>
+                    <span class="entry_type_enum_name">NONE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No metadata should be produced on output,<wbr/> except
 for application-bound buffer data.<wbr/> If no
 application-bound streams exist,<wbr/> no frame should be
@@ -17208,7 +17208,7 @@
 included with any output stream buffers</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FULL</span>
+                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>All metadata should be produced.<wbr/> Statistics will
 only be produced if they are separately
 enabled</p></span>
@@ -17594,7 +17594,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">RAW16</span>
+                    <span class="entry_type_enum_name">RAW16 (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_value">0x20</span>
                     <span class="entry_type_enum_notes"><p>RAW16 is a standard,<wbr/> cross-platform format for raw image
@@ -17622,7 +17622,7 @@
 the full set of performance guarantees.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">RAW_OPAQUE</span>
+                    <span class="entry_type_enum_name">RAW_OPAQUE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_value">0x24</span>
                     <span class="entry_type_enum_notes"><p>RAW_<wbr/>OPAQUE (or
@@ -17647,29 +17647,29 @@
 performance guarantees.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">YV12</span>
+                    <span class="entry_type_enum_name">YV12 (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_value">0x32315659</span>
                     <span class="entry_type_enum_notes"><p>YCrCb 4:2:0 Planar</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">YCrCb_420_SP</span>
+                    <span class="entry_type_enum_name">YCrCb_420_SP (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_value">0x11</span>
                     <span class="entry_type_enum_notes"><p>NV21</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED</span>
+                    <span class="entry_type_enum_name">IMPLEMENTATION_DEFINED (v3.2)</span>
                     <span class="entry_type_enum_value">0x22</span>
                     <span class="entry_type_enum_notes"><p>System internal format,<wbr/> not application-accessible</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">YCbCr_420_888</span>
+                    <span class="entry_type_enum_name">YCbCr_420_888 (v3.2)</span>
                     <span class="entry_type_enum_value">0x23</span>
                     <span class="entry_type_enum_notes"><p>Flexible YUV420 Format</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BLOB</span>
+                    <span class="entry_type_enum_name">BLOB (v3.2)</span>
                     <span class="entry_type_enum_value">0x21</span>
                     <span class="entry_type_enum_notes"><p>JPEG format</p></span>
                   </li>
@@ -18367,10 +18367,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OUTPUT</span>
+                    <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">INPUT</span>
+                    <span class="entry_type_enum_name">INPUT (v3.2)</span>
                   </li>
                 </ul>
 
@@ -18930,11 +18930,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">CENTER_ONLY</span>
+                    <span class="entry_type_enum_name">CENTER_ONLY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device only supports centered crop regions.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FREEFORM</span>
+                    <span class="entry_type_enum_name">FREEFORM (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device supports arbitrarily chosen crop regions.<wbr/></p></span>
                   </li>
                 </ul>
@@ -19519,13 +19519,13 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
 device returns captures from the image sensor.<wbr/></p>
 <p>This is the default if the key is not set.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SOLID_COLOR</span>
+                    <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
 respective color channel provided in
 <a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
@@ -19539,7 +19539,7 @@
 are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">COLOR_BARS</span>
+                    <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
 <p>The vertical bars (left-to-right) are as follows:</p>
 <ul>
@@ -19574,7 +19574,7 @@
 0% intensity or 100% intensity.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
+                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
 each bar should start at its specified color at the top,<wbr/>
 and fade to gray at the bottom.<wbr/></p>
@@ -19590,7 +19590,7 @@
 of the image.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PN9</span>
+                    <span class="entry_type_enum_name">PN9 (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
 generated from a PN9 512-bit sequence (typically implemented
 in hardware with a linear feedback shift register).<wbr/></p>
@@ -19599,7 +19599,7 @@
 be exactly the same as the last.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CUSTOM1</span>
+                    <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
                     <span class="entry_type_enum_value">256</span>
                     <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
 available only on this camera device are at least this numeric
@@ -19854,19 +19854,19 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">RGGB</span>
+                    <span class="entry_type_enum_name">RGGB (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">GRBG</span>
+                    <span class="entry_type_enum_name">GRBG (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">GBRG</span>
+                    <span class="entry_type_enum_name">GBRG (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">BGGR</span>
+                    <span class="entry_type_enum_name">BGGR (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">RGB</span>
+                    <span class="entry_type_enum_name">RGB (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Sensor is not Bayer; output has 3 16-bit
 values for each pixel,<wbr/> instead of just 1 16-bit value
 per pixel.<wbr/></p></span>
@@ -20284,7 +20284,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">UNKNOWN</span>
+                    <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Timestamps from <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> are in nanoseconds and monotonic,<wbr/>
 but can not be compared to timestamps from other subsystems
 (e.<wbr/>g.<wbr/> accelerometer,<wbr/> gyro etc.<wbr/>),<wbr/> or other instances of the same or different
@@ -20293,7 +20293,7 @@
 and the result metadata generated by a single capture are identical.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">REALTIME</span>
+                    <span class="entry_type_enum_name">REALTIME (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Timestamps from <a href="#dynamic_android.sensor.timestamp">android.<wbr/>sensor.<wbr/>timestamp</a> are in the same timebase as
 <a href="https://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtimeNanos">SystemClock#elapsedRealtimeNanos</a>,<wbr/>
 and they can be compared to other timestamps using that base.<wbr/></p></span>
@@ -20371,10 +20371,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FALSE</span>
+                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TRUE</span>
+                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                   </li>
                 </ul>
 
@@ -20559,84 +20559,84 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">DAYLIGHT</span>
+                    <span class="entry_type_enum_name">DAYLIGHT (v3.2)</span>
                     <span class="entry_type_enum_value">1</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FLUORESCENT</span>
+                    <span class="entry_type_enum_name">FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_value">2</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TUNGSTEN</span>
+                    <span class="entry_type_enum_name">TUNGSTEN (v3.2)</span>
                     <span class="entry_type_enum_value">3</span>
                     <span class="entry_type_enum_notes"><p>Incandescent light</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FLASH</span>
+                    <span class="entry_type_enum_name">FLASH (v3.2)</span>
                     <span class="entry_type_enum_value">4</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FINE_WEATHER</span>
+                    <span class="entry_type_enum_name">FINE_WEATHER (v3.2)</span>
                     <span class="entry_type_enum_value">9</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CLOUDY_WEATHER</span>
+                    <span class="entry_type_enum_name">CLOUDY_WEATHER (v3.2)</span>
                     <span class="entry_type_enum_value">10</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SHADE</span>
+                    <span class="entry_type_enum_name">SHADE (v3.2)</span>
                     <span class="entry_type_enum_value">11</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT</span>
+                    <span class="entry_type_enum_name">DAYLIGHT_FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_value">12</span>
                     <span class="entry_type_enum_notes"><p>D 5700 - 7100K</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT</span>
+                    <span class="entry_type_enum_name">DAY_WHITE_FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_value">13</span>
                     <span class="entry_type_enum_notes"><p>N 4600 - 5400K</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT</span>
+                    <span class="entry_type_enum_name">COOL_WHITE_FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_value">14</span>
                     <span class="entry_type_enum_notes"><p>W 3900 - 4500K</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">WHITE_FLUORESCENT</span>
+                    <span class="entry_type_enum_name">WHITE_FLUORESCENT (v3.2)</span>
                     <span class="entry_type_enum_value">15</span>
                     <span class="entry_type_enum_notes"><p>WW 3200 - 3700K</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">STANDARD_A</span>
+                    <span class="entry_type_enum_name">STANDARD_A (v3.2)</span>
                     <span class="entry_type_enum_value">17</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">STANDARD_B</span>
+                    <span class="entry_type_enum_name">STANDARD_B (v3.2)</span>
                     <span class="entry_type_enum_value">18</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">STANDARD_C</span>
+                    <span class="entry_type_enum_name">STANDARD_C (v3.2)</span>
                     <span class="entry_type_enum_value">19</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">D55</span>
+                    <span class="entry_type_enum_name">D55 (v3.2)</span>
                     <span class="entry_type_enum_value">20</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">D65</span>
+                    <span class="entry_type_enum_name">D65 (v3.2)</span>
                     <span class="entry_type_enum_value">21</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">D75</span>
+                    <span class="entry_type_enum_name">D75 (v3.2)</span>
                     <span class="entry_type_enum_value">22</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">D50</span>
+                    <span class="entry_type_enum_name">D50 (v3.2)</span>
                     <span class="entry_type_enum_value">23</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN</span>
+                    <span class="entry_type_enum_name">ISO_STUDIO_TUNGSTEN (v3.2)</span>
                     <span class="entry_type_enum_value">24</span>
                   </li>
                 </ul>
@@ -22589,13 +22589,13 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No test pattern mode is used,<wbr/> and the camera
 device returns captures from the image sensor.<wbr/></p>
 <p>This is the default if the key is not set.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SOLID_COLOR</span>
+                    <span class="entry_type_enum_name">SOLID_COLOR (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Each pixel in <code>[R,<wbr/> G_<wbr/>even,<wbr/> G_<wbr/>odd,<wbr/> B]</code> is replaced by its
 respective color channel provided in
 <a href="#controls_android.sensor.testPatternData">android.<wbr/>sensor.<wbr/>test<wbr/>Pattern<wbr/>Data</a>.<wbr/></p>
@@ -22609,7 +22609,7 @@
 are 100% green.<wbr/> All blue pixels are 100% black.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">COLOR_BARS</span>
+                    <span class="entry_type_enum_name">COLOR_BARS (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>All pixel data is replaced with an 8-bar color pattern.<wbr/></p>
 <p>The vertical bars (left-to-right) are as follows:</p>
 <ul>
@@ -22644,7 +22644,7 @@
 0% intensity or 100% intensity.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY</span>
+                    <span class="entry_type_enum_name">COLOR_BARS_FADE_TO_GRAY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The test pattern is similar to COLOR_<wbr/>BARS,<wbr/> except that
 each bar should start at its specified color at the top,<wbr/>
 and fade to gray at the bottom.<wbr/></p>
@@ -22660,7 +22660,7 @@
 of the image.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PN9</span>
+                    <span class="entry_type_enum_name">PN9 (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>All pixel data is replaced by a pseudo-random sequence
 generated from a PN9 512-bit sequence (typically implemented
 in hardware with a linear feedback shift register).<wbr/></p>
@@ -22669,7 +22669,7 @@
 be exactly the same as the last.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">CUSTOM1</span>
+                    <span class="entry_type_enum_name">CUSTOM1 (v3.2)</span>
                     <span class="entry_type_enum_value">256</span>
                     <span class="entry_type_enum_notes"><p>The first custom test pattern.<wbr/> All custom patterns that are
 available only on this camera device are at least this numeric
@@ -23015,16 +23015,16 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
 frame rate relative to sensor raw output</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
 cost of possibly reduced frame rate.<wbr/></p></span>
                   </li>
@@ -23180,16 +23180,16 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>No lens shading correction is applied.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Apply lens shading corrections,<wbr/> without slowing
 frame rate relative to sensor raw output</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Apply high-quality lens shading correction,<wbr/> at the
 cost of possibly reduced frame rate.<wbr/></p></span>
                   </li>
@@ -23401,17 +23401,17 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
 results.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SIMPLE</span>
+                    <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FULL</span>
+                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Return all face
 metadata.<wbr/></p>
@@ -23487,10 +23487,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                   </li>
                 </ul>
 
@@ -23540,10 +23540,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                   </li>
                 </ul>
 
@@ -23593,11 +23593,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
                   </li>
                 </ul>
@@ -23659,11 +23659,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
                   </li>
                 </ul>
@@ -24202,17 +24202,17 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Do not include face detection statistics in capture
 results.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">SIMPLE</span>
+                    <span class="entry_type_enum_name">SIMPLE (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Return face rectangle and confidence values only.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FULL</span>
+                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                     <span class="entry_type_enum_optional">[optional]</span>
                     <span class="entry_type_enum_notes"><p>Return all face
 metadata.<wbr/></p>
@@ -24655,10 +24655,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                   </li>
                 </ul>
 
@@ -24767,10 +24767,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                   </li>
                 </ul>
 
@@ -25188,17 +25188,17 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">NONE</span>
+                    <span class="entry_type_enum_name">NONE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device does not detect any flickering illumination
 in the current scene.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">50HZ</span>
+                    <span class="entry_type_enum_name">50HZ (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 50Hz
 in the current scene.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">60HZ</span>
+                    <span class="entry_type_enum_name">60HZ (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>The camera device detects illumination flickering at 60Hz
 in the current scene.<wbr/></p></span>
                   </li>
@@ -25267,11 +25267,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Hot pixel map production is disabled.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Hot pixel map production is enabled.<wbr/></p></span>
                   </li>
                 </ul>
@@ -25413,11 +25413,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Do not include a lens shading map in the capture result.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Include a lens shading map in the capture result.<wbr/></p></span>
                   </li>
                 </ul>
@@ -25840,7 +25840,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
+                    <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
 the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
@@ -25850,17 +25850,17 @@
 sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
 reducing frame rate compared to raw sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
 the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">GAMMA_VALUE</span>
+                    <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
 tonemapping.<wbr/></p>
 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
@@ -25868,7 +25868,7 @@
 <p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PRESET_CURVE</span>
+                    <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
 <a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
@@ -26005,11 +26005,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">SRGB</span>
+                    <span class="entry_type_enum_name">SRGB (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">REC709</span>
+                    <span class="entry_type_enum_name">REC709 (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
                   </li>
                 </ul>
@@ -26592,7 +26592,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">CONTRAST_CURVE</span>
+                    <span class="entry_type_enum_name">CONTRAST_CURVE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use the tone mapping curve specified in
 the <a href="#controls_android.tonemap.curve">android.<wbr/>tonemap.<wbr/>curve</a>* entries.<wbr/></p>
 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
@@ -26602,17 +26602,17 @@
 sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FAST</span>
+                    <span class="entry_type_enum_name">FAST (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Advanced gamma mapping and color enhancement may be applied,<wbr/> without
 reducing frame rate compared to raw sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">HIGH_QUALITY</span>
+                    <span class="entry_type_enum_name">HIGH_QUALITY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>High-quality gamma mapping and color enhancement will be applied,<wbr/> at
 the cost of possibly reduced frame rate compared to raw sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">GAMMA_VALUE</span>
+                    <span class="entry_type_enum_name">GAMMA_VALUE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use the gamma value specified in <a href="#controls_android.tonemap.gamma">android.<wbr/>tonemap.<wbr/>gamma</a> to peform
 tonemapping.<wbr/></p>
 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
@@ -26620,7 +26620,7 @@
 <p>Must not slow down frame rate relative to raw sensor output.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">PRESET_CURVE</span>
+                    <span class="entry_type_enum_name">PRESET_CURVE (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Use the preset tonemapping curve specified in
 <a href="#controls_android.tonemap.presetCurve">android.<wbr/>tonemap.<wbr/>preset<wbr/>Curve</a> to peform tonemapping.<wbr/></p>
 <p>All color enhancement and tonemapping must be disabled,<wbr/> except
@@ -26757,11 +26757,11 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">SRGB</span>
+                    <span class="entry_type_enum_name">SRGB (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by sRGB</p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">REC709</span>
+                    <span class="entry_type_enum_name">REC709 (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>Tonemapping curve is defined by ITU-R BT.<wbr/>709</p></span>
                   </li>
                 </ul>
@@ -26856,10 +26856,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                   </li>
                 </ul>
 
@@ -26942,10 +26942,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                   </li>
                 </ul>
 
@@ -27032,7 +27032,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">TRANSMIT</span>
+                    <span class="entry_type_enum_name">TRANSMIT (v3.2)</span>
                     <span class="entry_type_enum_notes"><p><a href="#controls_android.led.transmit">android.<wbr/>led.<wbr/>transmit</a> control is used.<wbr/></p></span>
                   </li>
                 </ul>
@@ -27113,7 +27113,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">LIMITED</span>
+                    <span class="entry_type_enum_name">LIMITED (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This camera device does not have enough capabilities to qualify as a <code>FULL</code> device or
 better.<wbr/></p>
 <p>Only the stream configurations listed in the <code>LEGACY</code> and <code>LIMITED</code> tables in the
@@ -27133,7 +27133,7 @@
 can be checked for in <a href="#static_android.request.availableCapabilities">android.<wbr/>request.<wbr/>available<wbr/>Capabilities</a>.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">FULL</span>
+                    <span class="entry_type_enum_name">FULL (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This camera device is capable of supporting advanced imaging applications.<wbr/></p>
 <p>The stream configurations listed in the <code>FULL</code>,<wbr/> <code>LEGACY</code> and <code>LIMITED</code> tables in the
 <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are guaranteed to be supported.<wbr/></p>
@@ -27154,7 +27154,7 @@
 23,<wbr/> and <code>FULL</code> devices may only support <code>CENTERED</code> cropping.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">LEGACY</span>
+                    <span class="entry_type_enum_name">LEGACY (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This camera device is running in backward compatibility mode.<wbr/></p>
 <p>Only the stream configurations listed in the <code>LEGACY</code> table in the <a href="https://developer.android.com/reference/android/hardware/camera2/CameraDevice.html#createCaptureSession">createCaptureSession</a> documentation are supported.<wbr/></p>
 <p>A <code>LEGACY</code> device does not support per-frame control,<wbr/> manual sensor control,<wbr/> manual
@@ -27169,7 +27169,7 @@
 enable the flash.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">3</span>
+                    <span class="entry_type_enum_name">3 (v3.2)</span>
                     <span class="entry_type_enum_notes"><p>This camera device is capable of YUV reprocessing and RAW data capture,<wbr/> in addition to
 FULL-level capabilities.<wbr/></p>
 <p>The stream configurations listed in the <code>LEVEL_<wbr/>3</code>,<wbr/> <code>RAW</code>,<wbr/> <code>FULL</code>,<wbr/> <code>LEGACY</code> and
@@ -27327,10 +27327,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                   </li>
                 </ul>
 
@@ -27464,10 +27464,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OFF</span>
+                    <span class="entry_type_enum_name">OFF (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">ON</span>
+                    <span class="entry_type_enum_name">ON (v3.2)</span>
                   </li>
                 </ul>
 
@@ -27575,7 +27575,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">CONVERGING</span>
+                    <span class="entry_type_enum_name">CONVERGING (v3.2)</span>
                     <span class="entry_type_enum_value">-1</span>
                     <span class="entry_type_enum_notes"><p>The current result is not yet fully synchronized to any request.<wbr/></p>
 <p>Synchronization is in progress,<wbr/> and reading metadata from this
@@ -27587,7 +27587,7 @@
 request settings remain constant).<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">UNKNOWN</span>
+                    <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
                     <span class="entry_type_enum_value">-2</span>
                     <span class="entry_type_enum_notes"><p>The current result's synchronization status is unknown.<wbr/></p>
 <p>The result may have already converged,<wbr/> or it may be in
@@ -27747,7 +27747,7 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">PER_FRAME_CONTROL</span>
+                    <span class="entry_type_enum_name">PER_FRAME_CONTROL (v3.2)</span>
                     <span class="entry_type_enum_value">0</span>
                     <span class="entry_type_enum_notes"><p>Every frame has the requests immediately applied.<wbr/></p>
 <p>Changing controls over multiple requests one after another will
@@ -27756,7 +27756,7 @@
 <p>All FULL capability devices will have this as their maxLatency.<wbr/></p></span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">UNKNOWN</span>
+                    <span class="entry_type_enum_name">UNKNOWN (v3.2)</span>
                     <span class="entry_type_enum_value">-1</span>
                     <span class="entry_type_enum_notes"><p>Each new frame has some subset (potentially the entire set)
 of the past requests applied to the camera settings.<wbr/></p>
@@ -28290,10 +28290,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">OUTPUT</span>
+                    <span class="entry_type_enum_name">OUTPUT (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">INPUT</span>
+                    <span class="entry_type_enum_name">INPUT (v3.2)</span>
                   </li>
                 </ul>
 
@@ -28497,10 +28497,10 @@
 
                 <ul class="entry_type_enum">
                   <li>
-                    <span class="entry_type_enum_name">FALSE</span>
+                    <span class="entry_type_enum_name">FALSE (v3.2)</span>
                   </li>
                   <li>
-                    <span class="entry_type_enum_name">TRUE</span>
+                    <span class="entry_type_enum_name">TRUE (v3.2)</span>
                   </li>
                 </ul>
 
diff --git a/camera/docs/html.mako b/camera/docs/html.mako
index 2074daa..3ba191b 100644
--- a/camera/docs/html.mako
+++ b/camera/docs/html.mako
@@ -301,7 +301,7 @@
                 <ul class="entry_type_enum">
                   % for value in prop.enum.values:
                   <li>
-                    <span class="entry_type_enum_name">${value.name}</span>
+                    <span class="entry_type_enum_name">${value.name} (v${value.hal_major_version}.${value.hal_minor_version})</span>
                   % if value.deprecated:
                     <span class="entry_type_enum_deprecated">[deprecated]</span>
                   % endif:
diff --git a/camera/docs/metadata-generate b/camera/docs/metadata-generate
index 58b5565..6999da9 100755
--- a/camera/docs/metadata-generate
+++ b/camera/docs/metadata-generate
@@ -202,9 +202,8 @@
 # Generate HIDL metadata modules - new versions need to be added here manually
 mkdir -p "${hidldir}/3.2"
 gen_file_abs HidlMetadata.mako "$hidldir/3.2/types.hal" yes 3.2 || exit 1
-# Uncomment below to generate 3.3 HIDL module
-#mkdir -p "${hidldir}/3.3"
-#gen_file_abs HidlMetadata.mako "$hidldir/3.3/types.hal" yes 3.3 || exit 1
+mkdir -p "${hidldir}/3.3"
+gen_file_abs HidlMetadata.mako "$hidldir/3.3/types.hal" yes 3.3 || exit 1
 
 #Generate NDK header
 gen_file_abs ndk_camera_metadata_tags.mako "$ndk_header_dir/NdkCameraMetadataTags.h" yes || exit 1
diff --git a/camera/docs/metadata_definitions.xsd b/camera/docs/metadata_definitions.xsd
index ad6ac8d..d8c15ab 100644
--- a/camera/docs/metadata_definitions.xsd
+++ b/camera/docs/metadata_definitions.xsd
@@ -301,6 +301,7 @@
             </simpleType>
         </attribute>
         <attribute name="id" type="string" />
+        <attribute name="hal_version" type="decimal" default="3.2" />
     </complexType>
 
     <complexType name="CloneType">
diff --git a/camera/docs/metadata_helpers.py b/camera/docs/metadata_helpers.py
index 7cde49b..210d2b9 100644
--- a/camera/docs/metadata_helpers.py
+++ b/camera/docs/metadata_helpers.py
@@ -788,7 +788,7 @@
   javadoc comment section, given a set of metadata
 
   Args:
-    metadata: A Metadata instance, representing the the top-level root
+    metadata: A Metadata instance, representing the top-level root
       of the metadata for cross-referencing
     indent: baseline level of indentation for javadoc block
   Returns:
@@ -877,7 +877,7 @@
   NDK camera API C/C++ comment section, given a set of metadata
 
   Args:
-    metadata: A Metadata instance, representing the the top-level root
+    metadata: A Metadata instance, representing the top-level root
       of the metadata for cross-referencing
     indent: baseline level of indentation for comment block
   Returns:
@@ -970,6 +970,98 @@
 
   return ndkdoc_formatter
 
+def hidldoc(metadata, indent = 4):
+  """
+  Returns a function to format a markdown syntax text block as a
+  HIDL camera HAL module C/C++ comment section, given a set of metadata
+
+  Args:
+    metadata: A Metadata instance, representing the top-level root
+      of the metadata for cross-referencing
+    indent: baseline level of indentation for comment block
+  Returns:
+    A function that transforms a String text block as follows:
+    - Indent and * for insertion into a comment block
+    - Trailing whitespace removed
+    - Entire body rendered via markdown
+    - All tag names converted to appropriate HIDL tag name for each tag
+
+  Example:
+    "This is a comment for NDK\n" +
+    "     with multiple lines, that should be   \n" +
+    "     formatted better\n" +
+    "\n" +
+    "    That covers multiple lines as well\n"
+    "    And references android.control.mode\n"
+
+    transforms to
+    "    * This is a comment for NDK\n" +
+    "    * with multiple lines, that should be\n" +
+    "    * formatted better\n" +
+    "    * That covers multiple lines as well\n" +
+    "    * and references ANDROID_CONTROL_MODE\n" +
+    "    *\n" +
+    "    * @see ANDROID_CONTROL_MODE\n"
+  """
+  def hidldoc_formatter(text):
+    # render with markdown => HTML
+    # Turn off the table plugin since doxygen doesn't recognize generated <thead> <tbody> tags
+    hidltext = md(text, NDKDOC_IMAGE_SRC_METADATA, False)
+
+    # Simple transform for hidl doc links
+    def hidldoc_link_filter(target, target_ndk, shortname):
+      if target_ndk is not None:
+        return '{@link %s %s}' % (target_ndk, shortname)
+
+      # Create HTML link to Javadoc
+      if shortname == '':
+        lastdot = target.rfind('.')
+        if lastdot == -1:
+          shortname = target
+        else:
+          shortname = target[lastdot + 1:]
+
+      target = target.replace('.','/')
+      if target.find('#') != -1:
+        target = target.replace('#','.html#')
+      else:
+        target = target + '.html'
+
+      return '<a href="https://developer.android.com/reference/%s">%s</a>' % (target, shortname)
+
+    hidltext = filter_links(hidltext, hidldoc_link_filter)
+
+    # Convert metadata entry "android.x.y.z" to form
+    # HIDL tag format of "ANDROID_X_Y_Z"
+    def hidldoc_crossref_filter(node):
+      return csym(node.name)
+
+    # For each public tag "android.x.y.z" referenced, add a
+    # "@see ANDROID_X_Y_Z"
+    def hidldoc_crossref_see_filter(node_set):
+      text = '\n'
+      for node in node_set:
+        text = text + '\n@see %s' % (csym(node.name))
+
+      return text if text != '\n' else ''
+
+    hidltext = filter_tags(hidltext, metadata, hidldoc_crossref_filter, hidldoc_crossref_see_filter)
+
+    comment_prefix = " " * indent + " * ";
+
+    def line_filter(line):
+      # Indent each line
+      # Add ' * ' to it for stylistic reasons
+      # Strip right side of trailing whitespace
+      return (comment_prefix + line).rstrip()
+
+    # Process each line with above filter
+    hidltext = "\n".join(line_filter(i) for i in hidltext.split("\n")) + "\n"
+
+    return hidltext
+
+  return hidldoc_formatter
+
 def dedent(text):
   """
   Remove all common indentation from every line but the 0th.
@@ -1272,6 +1364,20 @@
   """
   return (e for e in entries if e.hal_major_version == hal_major_version and e.hal_minor_version == hal_minor_version)
 
+def filter_has_enum_values_added_in_hal_version(entries, hal_major_version, hal_minor_version):
+  """
+  Filter the given entries to those that have a new enum value added in the given HIDL HAL version
+
+  Args:
+    entries: An iterable of Entry nodes
+    hal_major_version: Major HIDL version to filter for
+    hal_minor_version: Minor HIDL version to filter for
+
+  Yields:
+    An iterable of Entry nodes
+  """
+  return (e for e in entries if e.has_new_values_added_in_hal_version(hal_major_version, hal_minor_version))
+
 def filter_ndk_visible(entries):
   """
   Filter the given entries by removing those that are not NDK visible.
diff --git a/camera/docs/metadata_model.py b/camera/docs/metadata_model.py
index 648e44b..4485ad8 100644
--- a/camera/docs/metadata_model.py
+++ b/camera/docs/metadata_model.py
@@ -986,9 +986,11 @@
     sdk_notes: A string describing extra notes for public SDK only
     ndk_notes: A string describing extra notes for public NDK only
     parent: An edge to the parent, always an Enum instance.
+    hal_major_version: The major HIDL HAL version this value was first added in
+    hal_minor_version: The minor HIDL HAL version this value was first added in
   """
   def __init__(self, name, parent,
-      id=None, deprecated=False, optional=False, hidden=False, notes=None, sdk_notes=None, ndk_notes=None, ndk_hidden=False):
+      id=None, deprecated=False, optional=False, hidden=False, notes=None, sdk_notes=None, ndk_notes=None, ndk_hidden=False, hal_version='3.2'):
     self._name = name                    # str, e.g. 'ON' or 'OFF'
     self._id = id                        # int, e.g. '0'
     self._deprecated = deprecated        # bool
@@ -999,6 +1001,16 @@
     self._sdk_notes = sdk_notes          # None or str
     self._ndk_notes = ndk_notes          # None or str
     self._parent = parent
+    if hal_version is None:
+      if parent is not None and parent.parent is not None:
+        self._hal_major_version = parent.parent.hal_major_version
+        self._hal_minor_version = parent.parent.hal_minor_version
+      else:
+        self._hal_major_version = 3
+        self._hal_minor_version = 2
+    else:
+      self._hal_major_version = int(hal_version.partition('.')[0])
+      self._hal_minor_version = int(hal_version.partition('.')[2])
 
   @property
   def id(self):
@@ -1032,6 +1044,14 @@
   def ndk_notes(self):
     return self._ndk_notes
 
+  @property
+  def hal_major_version(self):
+    return self._hal_major_version
+
+  @property
+  def hal_minor_version(self):
+    return self._hal_minor_version
+
   def _get_children(self):
     return None
 
@@ -1046,14 +1066,13 @@
         non-empty id property.
   """
   def __init__(self, parent, values, ids={}, deprecateds=[],
-      optionals=[], hiddens=[], notes={}, sdk_notes={}, ndk_notes={}, ndk_hiddens=[]):
-    self._values =                                                             \
-      [ EnumValue(val, self, ids.get(val), val in deprecateds, val in optionals, val in hiddens,  \
-                  notes.get(val), sdk_notes.get(val), ndk_notes.get(val), val in ndk_hiddens)     \
-        for val in values ]
-
+      optionals=[], hiddens=[], notes={}, sdk_notes={}, ndk_notes={}, ndk_hiddens=[], hal_versions={}):
     self._parent = parent
     self._name = None
+    self._values =                                                             \
+      [ EnumValue(val, self, ids.get(val), val in deprecateds, val in optionals, val in hiddens,  \
+                  notes.get(val), sdk_notes.get(val), ndk_notes.get(val), val in ndk_hiddens, hal_versions.get(val))     \
+        for val in values ]
 
   @property
   def values(self):
@@ -1063,6 +1082,9 @@
   def has_values_with_id(self):
     return bool(any(i for i in self.values if i.id))
 
+  def has_new_values_added_in_hal_version(self, hal_major_version, hal_minor_version):
+    return bool(any(i for i in self.values if i.hal_major_version == hal_major_version and i.hal_minor_version == hal_minor_version))
+
   def _get_children(self):
     return (i for i in self._values)
 
@@ -1147,6 +1169,7 @@
       enum_optionals: A list of optional enum values, e.g. ['OFF']
       enum_notes: A dictionary of value->notes strings.
       enum_ids: A dictionary of value->id strings.
+      enum_hal_versions: A dictionary of value->hal version strings
 
     Args (optional):
       description: A string with a description of the entry.
@@ -1301,6 +1324,12 @@
   def enum(self):
     return self._enum
 
+  def has_new_values_added_in_hal_version(self, hal_major_version, hal_minor_version):
+    if self._enum is not None:
+      return self._enum.has_new_values_added_in_hal_version(hal_major_version,hal_minor_version)
+    else:
+      return False
+
   def _get_children(self):
     if self.enum:
       yield self.enum
@@ -1342,6 +1371,8 @@
     enum_sdk_notes = kwargs.get('enum_sdk_notes')  # { value => sdk_notes }
     enum_ndk_notes = kwargs.get('enum_ndk_notes')  # { value => ndk_notes }
     enum_ids = kwargs.get('enum_ids')  # { value => notes }
+    enum_hal_versions = kwargs.get('enum_hal_versions') # { value => hal_versions }
+
     self._tuple_values = kwargs.get('tuple_values')
 
     self._description = kwargs.get('description')
@@ -1360,7 +1391,7 @@
 
     if kwargs.get('enum', False):
       self._enum = Enum(self, enum_values, enum_ids, enum_deprecateds, enum_optionals,
-                        enum_hiddens, enum_notes, enum_sdk_notes, enum_ndk_notes, enum_ndk_hiddens)
+                        enum_hiddens, enum_notes, enum_sdk_notes, enum_ndk_notes, enum_ndk_hiddens, enum_hal_versions)
     else:
       self._enum = None
 
diff --git a/camera/docs/metadata_parser_xml.py b/camera/docs/metadata_parser_xml.py
index 81a7ec9..1daf02b 100755
--- a/camera/docs/metadata_parser_xml.py
+++ b/camera/docs/metadata_parser_xml.py
@@ -217,6 +217,7 @@
       enum_sdk_notes = {}
       enum_ndk_notes = {}
       enum_ids = {}
+      enum_hal_versions = {}
       for value in entry.enum.find_all('value'):
 
         value_body = self._strings_no_nl(value)
@@ -249,6 +250,9 @@
         if value.attrs.get('id') is not None:
           enum_ids[value_body] = value['id']
 
+        if value.attrs.get('hal_version') is not None:
+          enum_hal_versions[value_body] = value['hal_version']
+
       d['enum_values'] = enum_values
       d['enum_deprecateds'] = enum_deprecateds
       d['enum_optionals'] = enum_optionals
@@ -258,6 +262,7 @@
       d['enum_sdk_notes'] = enum_sdk_notes
       d['enum_ndk_notes'] = enum_ndk_notes
       d['enum_ids'] = enum_ids
+      d['enum_hal_versions'] = enum_hal_versions
       d['enum'] = True
 
     #
diff --git a/camera/docs/metadata_template.mako b/camera/docs/metadata_template.mako
index f45bfba..fc909c1 100644
--- a/camera/docs/metadata_template.mako
+++ b/camera/docs/metadata_template.mako
@@ -157,6 +157,9 @@
                     % if value.id is not None:
                              id="${value.id}"
                     % endif
+                    % if not (value.hal_major_version == prop.hal_major_version and value.hal_minor_version == prop.hal_minor_version):
+                             hal_version=${"%d.%d" % (value.hal_major_version, value.hal_minor_version)}
+                    % endif
                       >${value.name}
                     % if value.notes is not None:
                              <notes>${value.notes}</notes>
diff --git a/camera/include/system/camera_metadata_tags.h b/camera/include/system/camera_metadata_tags.h
index 4776b5e..4c8e8df 100644
--- a/camera/include/system/camera_metadata_tags.h
+++ b/camera/include/system/camera_metadata_tags.h
@@ -423,520 +423,521 @@
 
 // ANDROID_COLOR_CORRECTION_MODE
 typedef enum camera_metadata_enum_android_color_correction_mode {
-    ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX,
-    ANDROID_COLOR_CORRECTION_MODE_FAST,
-    ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY,
+    ANDROID_COLOR_CORRECTION_MODE_TRANSFORM_MATRIX                  , // HIDL v3.2
+    ANDROID_COLOR_CORRECTION_MODE_FAST                              , // HIDL v3.2
+    ANDROID_COLOR_CORRECTION_MODE_HIGH_QUALITY                      , // HIDL v3.2
 } camera_metadata_enum_android_color_correction_mode_t;
 
 // ANDROID_COLOR_CORRECTION_ABERRATION_MODE
 typedef enum camera_metadata_enum_android_color_correction_aberration_mode {
-    ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF,
-    ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST,
-    ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY,
+    ANDROID_COLOR_CORRECTION_ABERRATION_MODE_OFF                    , // HIDL v3.2
+    ANDROID_COLOR_CORRECTION_ABERRATION_MODE_FAST                   , // HIDL v3.2
+    ANDROID_COLOR_CORRECTION_ABERRATION_MODE_HIGH_QUALITY           , // HIDL v3.2
 } camera_metadata_enum_android_color_correction_aberration_mode_t;
 
 
 // ANDROID_CONTROL_AE_ANTIBANDING_MODE
 typedef enum camera_metadata_enum_android_control_ae_antibanding_mode {
-    ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF,
-    ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ,
-    ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ,
-    ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO,
+    ANDROID_CONTROL_AE_ANTIBANDING_MODE_OFF                         , // HIDL v3.2
+    ANDROID_CONTROL_AE_ANTIBANDING_MODE_50HZ                        , // HIDL v3.2
+    ANDROID_CONTROL_AE_ANTIBANDING_MODE_60HZ                        , // HIDL v3.2
+    ANDROID_CONTROL_AE_ANTIBANDING_MODE_AUTO                        , // HIDL v3.2
 } camera_metadata_enum_android_control_ae_antibanding_mode_t;
 
 // ANDROID_CONTROL_AE_LOCK
 typedef enum camera_metadata_enum_android_control_ae_lock {
-    ANDROID_CONTROL_AE_LOCK_OFF,
-    ANDROID_CONTROL_AE_LOCK_ON,
+    ANDROID_CONTROL_AE_LOCK_OFF                                     , // HIDL v3.2
+    ANDROID_CONTROL_AE_LOCK_ON                                      , // HIDL v3.2
 } camera_metadata_enum_android_control_ae_lock_t;
 
 // ANDROID_CONTROL_AE_MODE
 typedef enum camera_metadata_enum_android_control_ae_mode {
-    ANDROID_CONTROL_AE_MODE_OFF,
-    ANDROID_CONTROL_AE_MODE_ON,
-    ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH,
-    ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH,
-    ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE,
+    ANDROID_CONTROL_AE_MODE_OFF                                     , // HIDL v3.2
+    ANDROID_CONTROL_AE_MODE_ON                                      , // HIDL v3.2
+    ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH                           , // HIDL v3.2
+    ANDROID_CONTROL_AE_MODE_ON_ALWAYS_FLASH                         , // HIDL v3.2
+    ANDROID_CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE                    , // HIDL v3.2
 } camera_metadata_enum_android_control_ae_mode_t;
 
 // ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER
 typedef enum camera_metadata_enum_android_control_ae_precapture_trigger {
-    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE,
-    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START,
-    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL,
+    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_IDLE                      , // HIDL v3.2
+    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_START                     , // HIDL v3.2
+    ANDROID_CONTROL_AE_PRECAPTURE_TRIGGER_CANCEL                    , // HIDL v3.2
 } camera_metadata_enum_android_control_ae_precapture_trigger_t;
 
 // ANDROID_CONTROL_AF_MODE
 typedef enum camera_metadata_enum_android_control_af_mode {
-    ANDROID_CONTROL_AF_MODE_OFF,
-    ANDROID_CONTROL_AF_MODE_AUTO,
-    ANDROID_CONTROL_AF_MODE_MACRO,
-    ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO,
-    ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE,
-    ANDROID_CONTROL_AF_MODE_EDOF,
+    ANDROID_CONTROL_AF_MODE_OFF                                     , // HIDL v3.2
+    ANDROID_CONTROL_AF_MODE_AUTO                                    , // HIDL v3.2
+    ANDROID_CONTROL_AF_MODE_MACRO                                   , // HIDL v3.2
+    ANDROID_CONTROL_AF_MODE_CONTINUOUS_VIDEO                        , // HIDL v3.2
+    ANDROID_CONTROL_AF_MODE_CONTINUOUS_PICTURE                      , // HIDL v3.2
+    ANDROID_CONTROL_AF_MODE_EDOF                                    , // HIDL v3.2
 } camera_metadata_enum_android_control_af_mode_t;
 
 // ANDROID_CONTROL_AF_TRIGGER
 typedef enum camera_metadata_enum_android_control_af_trigger {
-    ANDROID_CONTROL_AF_TRIGGER_IDLE,
-    ANDROID_CONTROL_AF_TRIGGER_START,
-    ANDROID_CONTROL_AF_TRIGGER_CANCEL,
+    ANDROID_CONTROL_AF_TRIGGER_IDLE                                 , // HIDL v3.2
+    ANDROID_CONTROL_AF_TRIGGER_START                                , // HIDL v3.2
+    ANDROID_CONTROL_AF_TRIGGER_CANCEL                               , // HIDL v3.2
 } camera_metadata_enum_android_control_af_trigger_t;
 
 // ANDROID_CONTROL_AWB_LOCK
 typedef enum camera_metadata_enum_android_control_awb_lock {
-    ANDROID_CONTROL_AWB_LOCK_OFF,
-    ANDROID_CONTROL_AWB_LOCK_ON,
+    ANDROID_CONTROL_AWB_LOCK_OFF                                    , // HIDL v3.2
+    ANDROID_CONTROL_AWB_LOCK_ON                                     , // HIDL v3.2
 } camera_metadata_enum_android_control_awb_lock_t;
 
 // ANDROID_CONTROL_AWB_MODE
 typedef enum camera_metadata_enum_android_control_awb_mode {
-    ANDROID_CONTROL_AWB_MODE_OFF,
-    ANDROID_CONTROL_AWB_MODE_AUTO,
-    ANDROID_CONTROL_AWB_MODE_INCANDESCENT,
-    ANDROID_CONTROL_AWB_MODE_FLUORESCENT,
-    ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT,
-    ANDROID_CONTROL_AWB_MODE_DAYLIGHT,
-    ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT,
-    ANDROID_CONTROL_AWB_MODE_TWILIGHT,
-    ANDROID_CONTROL_AWB_MODE_SHADE,
+    ANDROID_CONTROL_AWB_MODE_OFF                                    , // HIDL v3.2
+    ANDROID_CONTROL_AWB_MODE_AUTO                                   , // HIDL v3.2
+    ANDROID_CONTROL_AWB_MODE_INCANDESCENT                           , // HIDL v3.2
+    ANDROID_CONTROL_AWB_MODE_FLUORESCENT                            , // HIDL v3.2
+    ANDROID_CONTROL_AWB_MODE_WARM_FLUORESCENT                       , // HIDL v3.2
+    ANDROID_CONTROL_AWB_MODE_DAYLIGHT                               , // HIDL v3.2
+    ANDROID_CONTROL_AWB_MODE_CLOUDY_DAYLIGHT                        , // HIDL v3.2
+    ANDROID_CONTROL_AWB_MODE_TWILIGHT                               , // HIDL v3.2
+    ANDROID_CONTROL_AWB_MODE_SHADE                                  , // HIDL v3.2
 } camera_metadata_enum_android_control_awb_mode_t;
 
 // ANDROID_CONTROL_CAPTURE_INTENT
 typedef enum camera_metadata_enum_android_control_capture_intent {
-    ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM,
-    ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW,
-    ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE,
-    ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD,
-    ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT,
-    ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG,
-    ANDROID_CONTROL_CAPTURE_INTENT_MANUAL,
+    ANDROID_CONTROL_CAPTURE_INTENT_CUSTOM                           , // HIDL v3.2
+    ANDROID_CONTROL_CAPTURE_INTENT_PREVIEW                          , // HIDL v3.2
+    ANDROID_CONTROL_CAPTURE_INTENT_STILL_CAPTURE                    , // HIDL v3.2
+    ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_RECORD                     , // HIDL v3.2
+    ANDROID_CONTROL_CAPTURE_INTENT_VIDEO_SNAPSHOT                   , // HIDL v3.2
+    ANDROID_CONTROL_CAPTURE_INTENT_ZERO_SHUTTER_LAG                 , // HIDL v3.2
+    ANDROID_CONTROL_CAPTURE_INTENT_MANUAL                           , // HIDL v3.2
 } camera_metadata_enum_android_control_capture_intent_t;
 
 // ANDROID_CONTROL_EFFECT_MODE
 typedef enum camera_metadata_enum_android_control_effect_mode {
-    ANDROID_CONTROL_EFFECT_MODE_OFF,
-    ANDROID_CONTROL_EFFECT_MODE_MONO,
-    ANDROID_CONTROL_EFFECT_MODE_NEGATIVE,
-    ANDROID_CONTROL_EFFECT_MODE_SOLARIZE,
-    ANDROID_CONTROL_EFFECT_MODE_SEPIA,
-    ANDROID_CONTROL_EFFECT_MODE_POSTERIZE,
-    ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD,
-    ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD,
-    ANDROID_CONTROL_EFFECT_MODE_AQUA,
+    ANDROID_CONTROL_EFFECT_MODE_OFF                                 , // HIDL v3.2
+    ANDROID_CONTROL_EFFECT_MODE_MONO                                , // HIDL v3.2
+    ANDROID_CONTROL_EFFECT_MODE_NEGATIVE                            , // HIDL v3.2
+    ANDROID_CONTROL_EFFECT_MODE_SOLARIZE                            , // HIDL v3.2
+    ANDROID_CONTROL_EFFECT_MODE_SEPIA                               , // HIDL v3.2
+    ANDROID_CONTROL_EFFECT_MODE_POSTERIZE                           , // HIDL v3.2
+    ANDROID_CONTROL_EFFECT_MODE_WHITEBOARD                          , // HIDL v3.2
+    ANDROID_CONTROL_EFFECT_MODE_BLACKBOARD                          , // HIDL v3.2
+    ANDROID_CONTROL_EFFECT_MODE_AQUA                                , // HIDL v3.2
 } camera_metadata_enum_android_control_effect_mode_t;
 
 // ANDROID_CONTROL_MODE
 typedef enum camera_metadata_enum_android_control_mode {
-    ANDROID_CONTROL_MODE_OFF,
-    ANDROID_CONTROL_MODE_AUTO,
-    ANDROID_CONTROL_MODE_USE_SCENE_MODE,
-    ANDROID_CONTROL_MODE_OFF_KEEP_STATE,
+    ANDROID_CONTROL_MODE_OFF                                        , // HIDL v3.2
+    ANDROID_CONTROL_MODE_AUTO                                       , // HIDL v3.2
+    ANDROID_CONTROL_MODE_USE_SCENE_MODE                             , // HIDL v3.2
+    ANDROID_CONTROL_MODE_OFF_KEEP_STATE                             , // HIDL v3.2
 } camera_metadata_enum_android_control_mode_t;
 
 // ANDROID_CONTROL_SCENE_MODE
 typedef enum camera_metadata_enum_android_control_scene_mode {
-    ANDROID_CONTROL_SCENE_MODE_DISABLED                         = 0,
-    ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY,
-    ANDROID_CONTROL_SCENE_MODE_ACTION,
-    ANDROID_CONTROL_SCENE_MODE_PORTRAIT,
-    ANDROID_CONTROL_SCENE_MODE_LANDSCAPE,
-    ANDROID_CONTROL_SCENE_MODE_NIGHT,
-    ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT,
-    ANDROID_CONTROL_SCENE_MODE_THEATRE,
-    ANDROID_CONTROL_SCENE_MODE_BEACH,
-    ANDROID_CONTROL_SCENE_MODE_SNOW,
-    ANDROID_CONTROL_SCENE_MODE_SUNSET,
-    ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO,
-    ANDROID_CONTROL_SCENE_MODE_FIREWORKS,
-    ANDROID_CONTROL_SCENE_MODE_SPORTS,
-    ANDROID_CONTROL_SCENE_MODE_PARTY,
-    ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT,
-    ANDROID_CONTROL_SCENE_MODE_BARCODE,
-    ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO,
-    ANDROID_CONTROL_SCENE_MODE_HDR,
-    ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT,
-    ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START              = 100,
-    ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END                = 127,
+    ANDROID_CONTROL_SCENE_MODE_DISABLED                              = 0, // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY                        , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_ACTION                               , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_PORTRAIT                             , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_LANDSCAPE                            , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_NIGHT                                , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_NIGHT_PORTRAIT                       , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_THEATRE                              , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_BEACH                                , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_SNOW                                 , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_SUNSET                               , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_STEADYPHOTO                          , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_FIREWORKS                            , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_SPORTS                               , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_PARTY                                , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_CANDLELIGHT                          , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_BARCODE                              , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_HIGH_SPEED_VIDEO                     , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_HDR                                  , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_FACE_PRIORITY_LOW_LIGHT              , // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_START                   = 100, // HIDL v3.2
+    ANDROID_CONTROL_SCENE_MODE_DEVICE_CUSTOM_END                     = 127, // HIDL v3.2
 } camera_metadata_enum_android_control_scene_mode_t;
 
 // ANDROID_CONTROL_VIDEO_STABILIZATION_MODE
 typedef enum camera_metadata_enum_android_control_video_stabilization_mode {
-    ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF,
-    ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON,
+    ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_OFF                    , // HIDL v3.2
+    ANDROID_CONTROL_VIDEO_STABILIZATION_MODE_ON                     , // HIDL v3.2
 } camera_metadata_enum_android_control_video_stabilization_mode_t;
 
 // ANDROID_CONTROL_AE_STATE
 typedef enum camera_metadata_enum_android_control_ae_state {
-    ANDROID_CONTROL_AE_STATE_INACTIVE,
-    ANDROID_CONTROL_AE_STATE_SEARCHING,
-    ANDROID_CONTROL_AE_STATE_CONVERGED,
-    ANDROID_CONTROL_AE_STATE_LOCKED,
-    ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED,
-    ANDROID_CONTROL_AE_STATE_PRECAPTURE,
+    ANDROID_CONTROL_AE_STATE_INACTIVE                               , // HIDL v3.2
+    ANDROID_CONTROL_AE_STATE_SEARCHING                              , // HIDL v3.2
+    ANDROID_CONTROL_AE_STATE_CONVERGED                              , // HIDL v3.2
+    ANDROID_CONTROL_AE_STATE_LOCKED                                 , // HIDL v3.2
+    ANDROID_CONTROL_AE_STATE_FLASH_REQUIRED                         , // HIDL v3.2
+    ANDROID_CONTROL_AE_STATE_PRECAPTURE                             , // HIDL v3.2
 } camera_metadata_enum_android_control_ae_state_t;
 
 // ANDROID_CONTROL_AF_STATE
 typedef enum camera_metadata_enum_android_control_af_state {
-    ANDROID_CONTROL_AF_STATE_INACTIVE,
-    ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN,
-    ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED,
-    ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN,
-    ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED,
-    ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED,
-    ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED,
+    ANDROID_CONTROL_AF_STATE_INACTIVE                               , // HIDL v3.2
+    ANDROID_CONTROL_AF_STATE_PASSIVE_SCAN                           , // HIDL v3.2
+    ANDROID_CONTROL_AF_STATE_PASSIVE_FOCUSED                        , // HIDL v3.2
+    ANDROID_CONTROL_AF_STATE_ACTIVE_SCAN                            , // HIDL v3.2
+    ANDROID_CONTROL_AF_STATE_FOCUSED_LOCKED                         , // HIDL v3.2
+    ANDROID_CONTROL_AF_STATE_NOT_FOCUSED_LOCKED                     , // HIDL v3.2
+    ANDROID_CONTROL_AF_STATE_PASSIVE_UNFOCUSED                      , // HIDL v3.2
 } camera_metadata_enum_android_control_af_state_t;
 
 // ANDROID_CONTROL_AWB_STATE
 typedef enum camera_metadata_enum_android_control_awb_state {
-    ANDROID_CONTROL_AWB_STATE_INACTIVE,
-    ANDROID_CONTROL_AWB_STATE_SEARCHING,
-    ANDROID_CONTROL_AWB_STATE_CONVERGED,
-    ANDROID_CONTROL_AWB_STATE_LOCKED,
+    ANDROID_CONTROL_AWB_STATE_INACTIVE                              , // HIDL v3.2
+    ANDROID_CONTROL_AWB_STATE_SEARCHING                             , // HIDL v3.2
+    ANDROID_CONTROL_AWB_STATE_CONVERGED                             , // HIDL v3.2
+    ANDROID_CONTROL_AWB_STATE_LOCKED                                , // HIDL v3.2
 } camera_metadata_enum_android_control_awb_state_t;
 
 // ANDROID_CONTROL_AE_LOCK_AVAILABLE
 typedef enum camera_metadata_enum_android_control_ae_lock_available {
-    ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE,
-    ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE,
+    ANDROID_CONTROL_AE_LOCK_AVAILABLE_FALSE                         , // HIDL v3.2
+    ANDROID_CONTROL_AE_LOCK_AVAILABLE_TRUE                          , // HIDL v3.2
 } camera_metadata_enum_android_control_ae_lock_available_t;
 
 // ANDROID_CONTROL_AWB_LOCK_AVAILABLE
 typedef enum camera_metadata_enum_android_control_awb_lock_available {
-    ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE,
-    ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE,
+    ANDROID_CONTROL_AWB_LOCK_AVAILABLE_FALSE                        , // HIDL v3.2
+    ANDROID_CONTROL_AWB_LOCK_AVAILABLE_TRUE                         , // HIDL v3.2
 } camera_metadata_enum_android_control_awb_lock_available_t;
 
 // ANDROID_CONTROL_ENABLE_ZSL
 typedef enum camera_metadata_enum_android_control_enable_zsl {
-    ANDROID_CONTROL_ENABLE_ZSL_FALSE,
-    ANDROID_CONTROL_ENABLE_ZSL_TRUE,
+    ANDROID_CONTROL_ENABLE_ZSL_FALSE                                , // HIDL v3.2
+    ANDROID_CONTROL_ENABLE_ZSL_TRUE                                 , // HIDL v3.2
 } camera_metadata_enum_android_control_enable_zsl_t;
 
 // ANDROID_CONTROL_AF_SCENE_CHANGE
 typedef enum camera_metadata_enum_android_control_af_scene_change {
-    ANDROID_CONTROL_AF_SCENE_CHANGE_NOT_DETECTED,
-    ANDROID_CONTROL_AF_SCENE_CHANGE_DETECTED,
+    ANDROID_CONTROL_AF_SCENE_CHANGE_NOT_DETECTED                    , // HIDL v3.3
+    ANDROID_CONTROL_AF_SCENE_CHANGE_DETECTED                        , // HIDL v3.3
 } camera_metadata_enum_android_control_af_scene_change_t;
 
 
 // ANDROID_DEMOSAIC_MODE
 typedef enum camera_metadata_enum_android_demosaic_mode {
-    ANDROID_DEMOSAIC_MODE_FAST,
-    ANDROID_DEMOSAIC_MODE_HIGH_QUALITY,
+    ANDROID_DEMOSAIC_MODE_FAST                                      , // HIDL v3.2
+    ANDROID_DEMOSAIC_MODE_HIGH_QUALITY                              , // HIDL v3.2
 } camera_metadata_enum_android_demosaic_mode_t;
 
 
 // ANDROID_EDGE_MODE
 typedef enum camera_metadata_enum_android_edge_mode {
-    ANDROID_EDGE_MODE_OFF,
-    ANDROID_EDGE_MODE_FAST,
-    ANDROID_EDGE_MODE_HIGH_QUALITY,
-    ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG,
+    ANDROID_EDGE_MODE_OFF                                           , // HIDL v3.2
+    ANDROID_EDGE_MODE_FAST                                          , // HIDL v3.2
+    ANDROID_EDGE_MODE_HIGH_QUALITY                                  , // HIDL v3.2
+    ANDROID_EDGE_MODE_ZERO_SHUTTER_LAG                              , // HIDL v3.2
 } camera_metadata_enum_android_edge_mode_t;
 
 
 // ANDROID_FLASH_MODE
 typedef enum camera_metadata_enum_android_flash_mode {
-    ANDROID_FLASH_MODE_OFF,
-    ANDROID_FLASH_MODE_SINGLE,
-    ANDROID_FLASH_MODE_TORCH,
+    ANDROID_FLASH_MODE_OFF                                          , // HIDL v3.2
+    ANDROID_FLASH_MODE_SINGLE                                       , // HIDL v3.2
+    ANDROID_FLASH_MODE_TORCH                                        , // HIDL v3.2
 } camera_metadata_enum_android_flash_mode_t;
 
 // ANDROID_FLASH_STATE
 typedef enum camera_metadata_enum_android_flash_state {
-    ANDROID_FLASH_STATE_UNAVAILABLE,
-    ANDROID_FLASH_STATE_CHARGING,
-    ANDROID_FLASH_STATE_READY,
-    ANDROID_FLASH_STATE_FIRED,
-    ANDROID_FLASH_STATE_PARTIAL,
+    ANDROID_FLASH_STATE_UNAVAILABLE                                 , // HIDL v3.2
+    ANDROID_FLASH_STATE_CHARGING                                    , // HIDL v3.2
+    ANDROID_FLASH_STATE_READY                                       , // HIDL v3.2
+    ANDROID_FLASH_STATE_FIRED                                       , // HIDL v3.2
+    ANDROID_FLASH_STATE_PARTIAL                                     , // HIDL v3.2
 } camera_metadata_enum_android_flash_state_t;
 
 
 // ANDROID_FLASH_INFO_AVAILABLE
 typedef enum camera_metadata_enum_android_flash_info_available {
-    ANDROID_FLASH_INFO_AVAILABLE_FALSE,
-    ANDROID_FLASH_INFO_AVAILABLE_TRUE,
+    ANDROID_FLASH_INFO_AVAILABLE_FALSE                              , // HIDL v3.2
+    ANDROID_FLASH_INFO_AVAILABLE_TRUE                               , // HIDL v3.2
 } camera_metadata_enum_android_flash_info_available_t;
 
 
 // ANDROID_HOT_PIXEL_MODE
 typedef enum camera_metadata_enum_android_hot_pixel_mode {
-    ANDROID_HOT_PIXEL_MODE_OFF,
-    ANDROID_HOT_PIXEL_MODE_FAST,
-    ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY,
+    ANDROID_HOT_PIXEL_MODE_OFF                                      , // HIDL v3.2
+    ANDROID_HOT_PIXEL_MODE_FAST                                     , // HIDL v3.2
+    ANDROID_HOT_PIXEL_MODE_HIGH_QUALITY                             , // HIDL v3.2
 } camera_metadata_enum_android_hot_pixel_mode_t;
 
 
 
 // ANDROID_LENS_OPTICAL_STABILIZATION_MODE
 typedef enum camera_metadata_enum_android_lens_optical_stabilization_mode {
-    ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF,
-    ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON,
+    ANDROID_LENS_OPTICAL_STABILIZATION_MODE_OFF                     , // HIDL v3.2
+    ANDROID_LENS_OPTICAL_STABILIZATION_MODE_ON                      , // HIDL v3.2
 } camera_metadata_enum_android_lens_optical_stabilization_mode_t;
 
 // ANDROID_LENS_FACING
 typedef enum camera_metadata_enum_android_lens_facing {
-    ANDROID_LENS_FACING_FRONT,
-    ANDROID_LENS_FACING_BACK,
-    ANDROID_LENS_FACING_EXTERNAL,
+    ANDROID_LENS_FACING_FRONT                                       , // HIDL v3.2
+    ANDROID_LENS_FACING_BACK                                        , // HIDL v3.2
+    ANDROID_LENS_FACING_EXTERNAL                                    , // HIDL v3.2
 } camera_metadata_enum_android_lens_facing_t;
 
 // ANDROID_LENS_STATE
 typedef enum camera_metadata_enum_android_lens_state {
-    ANDROID_LENS_STATE_STATIONARY,
-    ANDROID_LENS_STATE_MOVING,
+    ANDROID_LENS_STATE_STATIONARY                                   , // HIDL v3.2
+    ANDROID_LENS_STATE_MOVING                                       , // HIDL v3.2
 } camera_metadata_enum_android_lens_state_t;
 
 
 // ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION
 typedef enum camera_metadata_enum_android_lens_info_focus_distance_calibration {
-    ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED,
-    ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE,
-    ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED,
+    ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_UNCALIBRATED       , // HIDL v3.2
+    ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_APPROXIMATE        , // HIDL v3.2
+    ANDROID_LENS_INFO_FOCUS_DISTANCE_CALIBRATION_CALIBRATED         , // HIDL v3.2
 } camera_metadata_enum_android_lens_info_focus_distance_calibration_t;
 
 
 // ANDROID_NOISE_REDUCTION_MODE
 typedef enum camera_metadata_enum_android_noise_reduction_mode {
-    ANDROID_NOISE_REDUCTION_MODE_OFF,
-    ANDROID_NOISE_REDUCTION_MODE_FAST,
-    ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY,
-    ANDROID_NOISE_REDUCTION_MODE_MINIMAL,
-    ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG,
+    ANDROID_NOISE_REDUCTION_MODE_OFF                                , // HIDL v3.2
+    ANDROID_NOISE_REDUCTION_MODE_FAST                               , // HIDL v3.2
+    ANDROID_NOISE_REDUCTION_MODE_HIGH_QUALITY                       , // HIDL v3.2
+    ANDROID_NOISE_REDUCTION_MODE_MINIMAL                            , // HIDL v3.2
+    ANDROID_NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG                   , // HIDL v3.2
 } camera_metadata_enum_android_noise_reduction_mode_t;
 
 
 // ANDROID_QUIRKS_PARTIAL_RESULT
 typedef enum camera_metadata_enum_android_quirks_partial_result {
-    ANDROID_QUIRKS_PARTIAL_RESULT_FINAL,
-    ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL,
+    ANDROID_QUIRKS_PARTIAL_RESULT_FINAL                             , // HIDL v3.2
+    ANDROID_QUIRKS_PARTIAL_RESULT_PARTIAL                           , // HIDL v3.2
 } camera_metadata_enum_android_quirks_partial_result_t;
 
 
 // ANDROID_REQUEST_METADATA_MODE
 typedef enum camera_metadata_enum_android_request_metadata_mode {
-    ANDROID_REQUEST_METADATA_MODE_NONE,
-    ANDROID_REQUEST_METADATA_MODE_FULL,
+    ANDROID_REQUEST_METADATA_MODE_NONE                              , // HIDL v3.2
+    ANDROID_REQUEST_METADATA_MODE_FULL                              , // HIDL v3.2
 } camera_metadata_enum_android_request_metadata_mode_t;
 
 // ANDROID_REQUEST_TYPE
 typedef enum camera_metadata_enum_android_request_type {
-    ANDROID_REQUEST_TYPE_CAPTURE,
-    ANDROID_REQUEST_TYPE_REPROCESS,
+    ANDROID_REQUEST_TYPE_CAPTURE                                    , // HIDL v3.2
+    ANDROID_REQUEST_TYPE_REPROCESS                                  , // HIDL v3.2
 } camera_metadata_enum_android_request_type_t;
 
 // ANDROID_REQUEST_AVAILABLE_CAPABILITIES
 typedef enum camera_metadata_enum_android_request_available_capabilities {
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT,
-    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO,
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BACKWARD_COMPATIBLE      , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_SENSOR            , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_MANUAL_POST_PROCESSING   , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_RAW                      , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_PRIVATE_REPROCESSING     , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_READ_SENSOR_SETTINGS     , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_BURST_CAPTURE            , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_YUV_REPROCESSING         , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_DEPTH_OUTPUT             , // HIDL v3.2
+    ANDROID_REQUEST_AVAILABLE_CAPABILITIES_CONSTRAINED_HIGH_SPEED_VIDEO
+                                                                     , // HIDL v3.2
 } camera_metadata_enum_android_request_available_capabilities_t;
 
 
 // ANDROID_SCALER_AVAILABLE_FORMATS
 typedef enum camera_metadata_enum_android_scaler_available_formats {
-    ANDROID_SCALER_AVAILABLE_FORMATS_RAW16                      = 0x20,
-    ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE                 = 0x24,
-    ANDROID_SCALER_AVAILABLE_FORMATS_YV12                       = 0x32315659,
-    ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP               = 0x11,
-    ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED     = 0x22,
-    ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888              = 0x23,
-    ANDROID_SCALER_AVAILABLE_FORMATS_BLOB                       = 0x21,
+    ANDROID_SCALER_AVAILABLE_FORMATS_RAW16                           = 0x20, // HIDL v3.2
+    ANDROID_SCALER_AVAILABLE_FORMATS_RAW_OPAQUE                      = 0x24, // HIDL v3.2
+    ANDROID_SCALER_AVAILABLE_FORMATS_YV12                            = 0x32315659, // HIDL v3.2
+    ANDROID_SCALER_AVAILABLE_FORMATS_YCrCb_420_SP                    = 0x11, // HIDL v3.2
+    ANDROID_SCALER_AVAILABLE_FORMATS_IMPLEMENTATION_DEFINED          = 0x22, // HIDL v3.2
+    ANDROID_SCALER_AVAILABLE_FORMATS_YCbCr_420_888                   = 0x23, // HIDL v3.2
+    ANDROID_SCALER_AVAILABLE_FORMATS_BLOB                            = 0x21, // HIDL v3.2
 } camera_metadata_enum_android_scaler_available_formats_t;
 
 // ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS
 typedef enum camera_metadata_enum_android_scaler_available_stream_configurations {
-    ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT,
-    ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT,
+    ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT           , // HIDL v3.2
+    ANDROID_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_INPUT            , // HIDL v3.2
 } camera_metadata_enum_android_scaler_available_stream_configurations_t;
 
 // ANDROID_SCALER_CROPPING_TYPE
 typedef enum camera_metadata_enum_android_scaler_cropping_type {
-    ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY,
-    ANDROID_SCALER_CROPPING_TYPE_FREEFORM,
+    ANDROID_SCALER_CROPPING_TYPE_CENTER_ONLY                        , // HIDL v3.2
+    ANDROID_SCALER_CROPPING_TYPE_FREEFORM                           , // HIDL v3.2
 } camera_metadata_enum_android_scaler_cropping_type_t;
 
 
 // ANDROID_SENSOR_REFERENCE_ILLUMINANT1
 typedef enum camera_metadata_enum_android_sensor_reference_illuminant1 {
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT               = 1,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT            = 2,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN               = 3,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH                  = 4,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER           = 9,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER         = 10,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE                  = 11,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT   = 12,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT  = 13,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT = 14,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT      = 15,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A             = 17,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B             = 18,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C             = 19,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55                    = 20,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65                    = 21,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75                    = 22,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50                    = 23,
-    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN    = 24,
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT                    = 1, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLUORESCENT                 = 2, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_TUNGSTEN                    = 3, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FLASH                       = 4, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_FINE_WEATHER                = 9, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_CLOUDY_WEATHER              = 10, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_SHADE                       = 11, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAYLIGHT_FLUORESCENT        = 12, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_DAY_WHITE_FLUORESCENT       = 13, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_COOL_WHITE_FLUORESCENT      = 14, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_WHITE_FLUORESCENT           = 15, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_A                  = 17, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_B                  = 18, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_STANDARD_C                  = 19, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D55                         = 20, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D65                         = 21, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D75                         = 22, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_D50                         = 23, // HIDL v3.2
+    ANDROID_SENSOR_REFERENCE_ILLUMINANT1_ISO_STUDIO_TUNGSTEN         = 24, // HIDL v3.2
 } camera_metadata_enum_android_sensor_reference_illuminant1_t;
 
 // ANDROID_SENSOR_TEST_PATTERN_MODE
 typedef enum camera_metadata_enum_android_sensor_test_pattern_mode {
-    ANDROID_SENSOR_TEST_PATTERN_MODE_OFF,
-    ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR,
-    ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS,
-    ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY,
-    ANDROID_SENSOR_TEST_PATTERN_MODE_PN9,
-    ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1                    = 256,
+    ANDROID_SENSOR_TEST_PATTERN_MODE_OFF                            , // HIDL v3.2
+    ANDROID_SENSOR_TEST_PATTERN_MODE_SOLID_COLOR                    , // HIDL v3.2
+    ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS                     , // HIDL v3.2
+    ANDROID_SENSOR_TEST_PATTERN_MODE_COLOR_BARS_FADE_TO_GRAY        , // HIDL v3.2
+    ANDROID_SENSOR_TEST_PATTERN_MODE_PN9                            , // HIDL v3.2
+    ANDROID_SENSOR_TEST_PATTERN_MODE_CUSTOM1                         = 256, // HIDL v3.2
 } camera_metadata_enum_android_sensor_test_pattern_mode_t;
 
 
 // ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT
 typedef enum camera_metadata_enum_android_sensor_info_color_filter_arrangement {
-    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB,
-    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG,
-    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG,
-    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR,
-    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB,
+    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGGB               , // HIDL v3.2
+    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GRBG               , // HIDL v3.2
+    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_GBRG               , // HIDL v3.2
+    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_BGGR               , // HIDL v3.2
+    ANDROID_SENSOR_INFO_COLOR_FILTER_ARRANGEMENT_RGB                , // HIDL v3.2
 } camera_metadata_enum_android_sensor_info_color_filter_arrangement_t;
 
 // ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE
 typedef enum camera_metadata_enum_android_sensor_info_timestamp_source {
-    ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN,
-    ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME,
+    ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_UNKNOWN                    , // HIDL v3.2
+    ANDROID_SENSOR_INFO_TIMESTAMP_SOURCE_REALTIME                   , // HIDL v3.2
 } camera_metadata_enum_android_sensor_info_timestamp_source_t;
 
 // ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED
 typedef enum camera_metadata_enum_android_sensor_info_lens_shading_applied {
-    ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE,
-    ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE,
+    ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_FALSE                  , // HIDL v3.2
+    ANDROID_SENSOR_INFO_LENS_SHADING_APPLIED_TRUE                   , // HIDL v3.2
 } camera_metadata_enum_android_sensor_info_lens_shading_applied_t;
 
 
 // ANDROID_SHADING_MODE
 typedef enum camera_metadata_enum_android_shading_mode {
-    ANDROID_SHADING_MODE_OFF,
-    ANDROID_SHADING_MODE_FAST,
-    ANDROID_SHADING_MODE_HIGH_QUALITY,
+    ANDROID_SHADING_MODE_OFF                                        , // HIDL v3.2
+    ANDROID_SHADING_MODE_FAST                                       , // HIDL v3.2
+    ANDROID_SHADING_MODE_HIGH_QUALITY                               , // HIDL v3.2
 } camera_metadata_enum_android_shading_mode_t;
 
 
 // ANDROID_STATISTICS_FACE_DETECT_MODE
 typedef enum camera_metadata_enum_android_statistics_face_detect_mode {
-    ANDROID_STATISTICS_FACE_DETECT_MODE_OFF,
-    ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE,
-    ANDROID_STATISTICS_FACE_DETECT_MODE_FULL,
+    ANDROID_STATISTICS_FACE_DETECT_MODE_OFF                         , // HIDL v3.2
+    ANDROID_STATISTICS_FACE_DETECT_MODE_SIMPLE                      , // HIDL v3.2
+    ANDROID_STATISTICS_FACE_DETECT_MODE_FULL                        , // HIDL v3.2
 } camera_metadata_enum_android_statistics_face_detect_mode_t;
 
 // ANDROID_STATISTICS_HISTOGRAM_MODE
 typedef enum camera_metadata_enum_android_statistics_histogram_mode {
-    ANDROID_STATISTICS_HISTOGRAM_MODE_OFF,
-    ANDROID_STATISTICS_HISTOGRAM_MODE_ON,
+    ANDROID_STATISTICS_HISTOGRAM_MODE_OFF                           , // HIDL v3.2
+    ANDROID_STATISTICS_HISTOGRAM_MODE_ON                            , // HIDL v3.2
 } camera_metadata_enum_android_statistics_histogram_mode_t;
 
 // ANDROID_STATISTICS_SHARPNESS_MAP_MODE
 typedef enum camera_metadata_enum_android_statistics_sharpness_map_mode {
-    ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF,
-    ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON,
+    ANDROID_STATISTICS_SHARPNESS_MAP_MODE_OFF                       , // HIDL v3.2
+    ANDROID_STATISTICS_SHARPNESS_MAP_MODE_ON                        , // HIDL v3.2
 } camera_metadata_enum_android_statistics_sharpness_map_mode_t;
 
 // ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE
 typedef enum camera_metadata_enum_android_statistics_hot_pixel_map_mode {
-    ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF,
-    ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON,
+    ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_OFF                       , // HIDL v3.2
+    ANDROID_STATISTICS_HOT_PIXEL_MAP_MODE_ON                        , // HIDL v3.2
 } camera_metadata_enum_android_statistics_hot_pixel_map_mode_t;
 
 // ANDROID_STATISTICS_SCENE_FLICKER
 typedef enum camera_metadata_enum_android_statistics_scene_flicker {
-    ANDROID_STATISTICS_SCENE_FLICKER_NONE,
-    ANDROID_STATISTICS_SCENE_FLICKER_50HZ,
-    ANDROID_STATISTICS_SCENE_FLICKER_60HZ,
+    ANDROID_STATISTICS_SCENE_FLICKER_NONE                           , // HIDL v3.2
+    ANDROID_STATISTICS_SCENE_FLICKER_50HZ                           , // HIDL v3.2
+    ANDROID_STATISTICS_SCENE_FLICKER_60HZ                           , // HIDL v3.2
 } camera_metadata_enum_android_statistics_scene_flicker_t;
 
 // ANDROID_STATISTICS_LENS_SHADING_MAP_MODE
 typedef enum camera_metadata_enum_android_statistics_lens_shading_map_mode {
-    ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF,
-    ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON,
+    ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_OFF                    , // HIDL v3.2
+    ANDROID_STATISTICS_LENS_SHADING_MAP_MODE_ON                     , // HIDL v3.2
 } camera_metadata_enum_android_statistics_lens_shading_map_mode_t;
 
 
 
 // ANDROID_TONEMAP_MODE
 typedef enum camera_metadata_enum_android_tonemap_mode {
-    ANDROID_TONEMAP_MODE_CONTRAST_CURVE,
-    ANDROID_TONEMAP_MODE_FAST,
-    ANDROID_TONEMAP_MODE_HIGH_QUALITY,
-    ANDROID_TONEMAP_MODE_GAMMA_VALUE,
-    ANDROID_TONEMAP_MODE_PRESET_CURVE,
+    ANDROID_TONEMAP_MODE_CONTRAST_CURVE                             , // HIDL v3.2
+    ANDROID_TONEMAP_MODE_FAST                                       , // HIDL v3.2
+    ANDROID_TONEMAP_MODE_HIGH_QUALITY                               , // HIDL v3.2
+    ANDROID_TONEMAP_MODE_GAMMA_VALUE                                , // HIDL v3.2
+    ANDROID_TONEMAP_MODE_PRESET_CURVE                               , // HIDL v3.2
 } camera_metadata_enum_android_tonemap_mode_t;
 
 // ANDROID_TONEMAP_PRESET_CURVE
 typedef enum camera_metadata_enum_android_tonemap_preset_curve {
-    ANDROID_TONEMAP_PRESET_CURVE_SRGB,
-    ANDROID_TONEMAP_PRESET_CURVE_REC709,
+    ANDROID_TONEMAP_PRESET_CURVE_SRGB                               , // HIDL v3.2
+    ANDROID_TONEMAP_PRESET_CURVE_REC709                             , // HIDL v3.2
 } camera_metadata_enum_android_tonemap_preset_curve_t;
 
 
 // ANDROID_LED_TRANSMIT
 typedef enum camera_metadata_enum_android_led_transmit {
-    ANDROID_LED_TRANSMIT_OFF,
-    ANDROID_LED_TRANSMIT_ON,
+    ANDROID_LED_TRANSMIT_OFF                                        , // HIDL v3.2
+    ANDROID_LED_TRANSMIT_ON                                         , // HIDL v3.2
 } camera_metadata_enum_android_led_transmit_t;
 
 // ANDROID_LED_AVAILABLE_LEDS
 typedef enum camera_metadata_enum_android_led_available_leds {
-    ANDROID_LED_AVAILABLE_LEDS_TRANSMIT,
+    ANDROID_LED_AVAILABLE_LEDS_TRANSMIT                             , // HIDL v3.2
 } camera_metadata_enum_android_led_available_leds_t;
 
 
 // ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL
 typedef enum camera_metadata_enum_android_info_supported_hardware_level {
-    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED,
-    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL,
-    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY,
-    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3,
+    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LIMITED                   , // HIDL v3.2
+    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_FULL                      , // HIDL v3.2
+    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_LEGACY                    , // HIDL v3.2
+    ANDROID_INFO_SUPPORTED_HARDWARE_LEVEL_3                         , // HIDL v3.2
 } camera_metadata_enum_android_info_supported_hardware_level_t;
 
 
 // ANDROID_BLACK_LEVEL_LOCK
 typedef enum camera_metadata_enum_android_black_level_lock {
-    ANDROID_BLACK_LEVEL_LOCK_OFF,
-    ANDROID_BLACK_LEVEL_LOCK_ON,
+    ANDROID_BLACK_LEVEL_LOCK_OFF                                    , // HIDL v3.2
+    ANDROID_BLACK_LEVEL_LOCK_ON                                     , // HIDL v3.2
 } camera_metadata_enum_android_black_level_lock_t;
 
 
 // ANDROID_SYNC_FRAME_NUMBER
 typedef enum camera_metadata_enum_android_sync_frame_number {
-    ANDROID_SYNC_FRAME_NUMBER_CONVERGING                        = -1,
-    ANDROID_SYNC_FRAME_NUMBER_UNKNOWN                           = -2,
+    ANDROID_SYNC_FRAME_NUMBER_CONVERGING                             = -1, // HIDL v3.2
+    ANDROID_SYNC_FRAME_NUMBER_UNKNOWN                                = -2, // HIDL v3.2
 } camera_metadata_enum_android_sync_frame_number_t;
 
 // ANDROID_SYNC_MAX_LATENCY
 typedef enum camera_metadata_enum_android_sync_max_latency {
-    ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL                  = 0,
-    ANDROID_SYNC_MAX_LATENCY_UNKNOWN                            = -1,
+    ANDROID_SYNC_MAX_LATENCY_PER_FRAME_CONTROL                       = 0, // HIDL v3.2
+    ANDROID_SYNC_MAX_LATENCY_UNKNOWN                                 = -1, // HIDL v3.2
 } camera_metadata_enum_android_sync_max_latency_t;
 
 
 
 // ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS
 typedef enum camera_metadata_enum_android_depth_available_depth_stream_configurations {
-    ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT,
-    ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT,
+    ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_OUTPUT      , // HIDL v3.2
+    ANDROID_DEPTH_AVAILABLE_DEPTH_STREAM_CONFIGURATIONS_INPUT       , // HIDL v3.2
 } camera_metadata_enum_android_depth_available_depth_stream_configurations_t;
 
 // ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE
 typedef enum camera_metadata_enum_android_depth_depth_is_exclusive {
-    ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE,
-    ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE,
+    ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_FALSE                          , // HIDL v3.2
+    ANDROID_DEPTH_DEPTH_IS_EXCLUSIVE_TRUE                           , // HIDL v3.2
 } camera_metadata_enum_android_depth_depth_is_exclusive_t;