OSDN Git Service

camera_metadata: Add rollingShutterSkew tag
authorZhijun He <zhijunhe@google.com>
Wed, 11 Jun 2014 17:44:53 +0000 (10:44 -0700)
committerZhijun He <zhijunhe@google.com>
Fri, 13 Jun 2014 21:22:02 +0000 (14:22 -0700)
Change-Id: Icbedaeda9fc64a9dda509493ad9d14569c56cd18

camera/docs/docs.html
camera/docs/metadata_properties.xml
camera/include/system/camera_metadata_tags.h
camera/src/camera_metadata_tag_info.c

index 78e6c01..fcd4dfc 100644 (file)
             ><a href="#dynamic_android.sensor.testPatternData">android.sensor.testPatternData</a></li>
             <li
             ><a href="#dynamic_android.sensor.testPatternMode">android.sensor.testPatternMode</a></li>
+            <li
+            ><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a></li>
           </ul>
         </li>
       </ul> <!-- toc_section -->
@@ -17014,7 +17016,7 @@ output capture result.<wbr/></p>
 
             <td class="entry_description">
               <p>Time at start of exposure of first
-row of the image sensor,<wbr/> in nanoseconds.<wbr/></p>
+row of the image sensor active array,<wbr/> in nanoseconds.<wbr/></p>
             </td>
 
             <td class="entry_units">
@@ -17599,6 +17601,70 @@ sensor interconnect bus (such as CSI2) or memory.<wbr/></p>
           <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
            <!-- end of entry -->
         
+                
+          <tr class="entry" id="dynamic_android.sensor.rollingShutterSkew">
+            <td class="entry_name
+             " rowspan="5">
+              android.<wbr/>sensor.<wbr/>rolling<wbr/>Shutter<wbr/>Skew
+            </td>
+            <td class="entry_type">
+                <span class="entry_type_name">int64</span>
+
+              <span class="entry_type_visibility"> [public]</span>
+
+
+
+
+
+            </td> <!-- entry_type -->
+
+            <td class="entry_description">
+              <p>Duration between the start of first row exposure
+and the start of last row exposure.<wbr/></p>
+            </td>
+
+            <td class="entry_units">
+              nanoseconds
+            </td>
+
+            <td class="entry_range">
+              <p>&gt;= 0 and &lt;
+StreamConfigurationMap#getOutputMinFrameDuration(int,<wbr/> Size).<wbr/></p>
+            </td>
+
+            <td class="entry_tags">
+              <ul class="entry_tags">
+                  <li><a href="#tag_V1">V1</a></li>
+              </ul>
+            </td>
+
+          </tr>
+          <tr class="entries_header">
+            <th class="th_details" colspan="5">Details</th>
+          </tr>
+          <tr class="entry_cont">
+            <td class="entry_details" colspan="5">
+              <p>This is the exposure time skew (in the unit of nanosecond) between the first and
+last row exposure start times.<wbr/> The first row and the last row are the first
+and last rows inside of the <a href="#static_android.sensor.info.activeArraySize">android.<wbr/>sensor.<wbr/>info.<wbr/>active<wbr/>Array<wbr/>Size</a>.<wbr/></p>
+<p>For typical camera sensors that use rolling shutters,<wbr/> this is also equivalent
+to the frame readout time.<wbr/></p>
+            </td>
+          </tr>
+
+          <tr class="entries_header">
+            <th class="th_details" colspan="5">HAL Implementation Details</th>
+          </tr>
+          <tr class="entry_cont">
+            <td class="entry_details" colspan="5">
+              <p>The HAL must report <code>0</code> if the sensor is using global shutter,<wbr/> where all pixels begin
+exposure at the same time.<wbr/></p>
+            </td>
+          </tr>
+
+          <tr class="entry_spacer"><td class="entry_spacer" colspan="6"></td></tr>
+           <!-- end of entry -->
+        
         
 
       <!-- end of kind -->
@@ -21700,6 +21766,7 @@ to know when sensor settings have been applied.<wbr/></p>
           <li><a href="#static_android.sensor.info.maxFrameDuration">android.sensor.info.maxFrameDuration</a> (static)</li>
           <li><a href="#static_android.sensor.info.physicalSize">android.sensor.info.physicalSize</a> (static)</li>
           <li><a href="#static_android.sensor.maxAnalogSensitivity">android.sensor.maxAnalogSensitivity</a> (static)</li>
+          <li><a href="#dynamic_android.sensor.rollingShutterSkew">android.sensor.rollingShutterSkew</a> (dynamic)</li>
           <li><a href="#controls_android.statistics.hotPixelMapMode">android.statistics.hotPixelMapMode</a> (controls)</li>
           <li><a href="#static_android.statistics.info.availableHotPixelMapModes">android.statistics.info.availableHotPixelMapModes</a> (static)</li>
           <li><a href="#dynamic_android.statistics.hotPixelMap">android.statistics.hotPixelMap</a> (dynamic)</li>
index b95117f..5557d69 100644 (file)
@@ -4961,7 +4961,7 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
         </clone>
         <entry name="timestamp" type="int64" visibility="public">
           <description>Time at start of exposure of first
-          row of the image sensor, in nanoseconds.</description>
+          row of the image sensor active array, in nanoseconds.</description>
           <units>nanoseconds</units>
           <range>&amp;gt; 0</range>
           <details>The timestamps are also included in all image
@@ -5301,6 +5301,28 @@ xsi:schemaLocation="http://schemas.android.com/service/camera/metadata/ metadata
           </details>
         </entry>
       </static>
+      <dynamic>
+        <entry name="rollingShutterSkew" type="int64" visibility="public">
+          <description>Duration between the start of first row exposure
+          and the start of last row exposure.</description>
+          <units>nanoseconds</units>
+          <range> &amp;gt;= 0 and &amp;lt;
+          StreamConfigurationMap#getOutputMinFrameDuration(int, Size).</range>
+          <details>
+          This is the exposure time skew (in the unit of nanosecond) between the first and
+          last row exposure start times. The first row and the last row are the first
+          and last rows inside of the android.sensor.info.activeArraySize.
+
+          For typical camera sensors that use rolling shutters, this is also equivalent
+          to the frame readout time.
+          </details>
+          <hal_details>
+          The HAL must report `0` if the sensor is using global shutter, where all pixels begin
+          exposure at the same time.
+          </hal_details>
+          <tag id="V1" />
+        </entry>
+      </dynamic>
     </section>
     <section name="shading">
       <controls>
index 4426279..697a62f 100644 (file)
@@ -291,6 +291,7 @@ typedef enum camera_metadata_tag {
     ANDROID_SENSOR_TEST_PATTERN_DATA,                 // int32[]      | public
     ANDROID_SENSOR_TEST_PATTERN_MODE,                 // enum         | public
     ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES,      // int32[]      | public
+    ANDROID_SENSOR_ROLLING_SHUTTER_SKEW,              // int64        | public
     ANDROID_SENSOR_END,
 
     ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE =           // int32[]      | public
index 5c20df1..5dc7876 100644 (file)
@@ -465,6 +465,8 @@ static tag_info_t android_sensor[ANDROID_SENSOR_END -
     { "testPatternMode",               TYPE_INT32  },
     [ ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES - ANDROID_SENSOR_START ] =
     { "availableTestPatternModes",     TYPE_INT32  },
+    [ ANDROID_SENSOR_ROLLING_SHUTTER_SKEW - ANDROID_SENSOR_START ] =
+    { "rollingShutterSkew",            TYPE_INT64  },
 };
 
 static tag_info_t android_sensor_info[ANDROID_SENSOR_INFO_END -
@@ -1903,6 +1905,9 @@ int camera_metadata_enum_snprint(uint32_t tag,
         case ANDROID_SENSOR_AVAILABLE_TEST_PATTERN_MODES: {
             break;
         }
+        case ANDROID_SENSOR_ROLLING_SHUTTER_SKEW: {
+            break;
+        }
 
         case ANDROID_SENSOR_INFO_ACTIVE_ARRAY_SIZE: {
             break;