[Zuma 8k] Add 8k encoder profiles for P23 devices (3rd attempt)
The 2nd attempt (ag/20294157) was reverted due to b/259732944. To avoid the bug, we explicitly define the "high" quality encoder as a 4k encoder. Note (1) below explains the reasons. 8k encoder specs: Codec: h264 bitRate: 80000000 (80M); source: b/241178681#comment3 Size: 7680x4320 (8K UHD) Frame rate: 30fps Notes: (1) Regarding b/259732944 (the bug caused by the 2nd attempt): If CamcorderProfile.QUALITY_HIGH isn't explicitly specified, the highest resolution available will be used. Therefore, when the 8k profile was added, apps requesting QUALITY_HIGH would ask HAL to perform 8k recording. This created the following issues: (a) As 8k support in HAL isn't ready, existing tests using QUALITY_HIGH will fail (such as CTS, PTS, FATP, etc.). (b) 3rd-party apps currently using QUALITY_HIGH will get 8k, which might not be their intention. So we chose to keep QUALITY_HIGH at 4k, which was the highest resolution on P22 devices. Detailed discussions are in b/259599407. ---------------- (2) Regarding the "quality" attribute in EncoderProfile: It must match what's defined in MediaProfiles::sCamcorderQualityNameMap (see frameworks/av/media/libmedia/MediaProfiles.cpp). ---------------- (3) Regarding the camera IDs: The camera IDs in media_profiles_{device_name}.xml correspond to the IDs inside vector ModelSpecificDataControllerBase::visible_camera_ids_. The vector is populated in lyric/silo/hardware/devices/{device_name}/data/model_specific_data_controller.cc According to the documentation of "visible_camera_ids_", "the first ID for each facing will be used as the default camera ID". As visible_camera_ids_[0] is always the first (default) ID for the rear camera, and only the rear camera supports 8k, we add 8k encoder profiles for camera 0 in media_profiles. The explanation above isn't obvious. You'll need to read model_specific_data_controller.cc to understand it. ---------------- (4) Regarding tests: We can't test the 8k encoder since we haven't brought up the 8k support in ISP. We can use CTS, PTS, and EECoexer to test this CL for existing use cases. Note that RecordingTest#testBasicRecording currently fails at TOT due to a different reason. For this CL, we only need to make sure no 8k stream is requested by observing logs with the "GCH_HalUtils" tag. Bug: 232811715 Bug: 262423942 Test: build & boot Android Test: atest RecordingTest#testBasicRecording Test: adb shell /data/sysval/scripts/eecoexer/eecoex.sh -s CAM,22,0,5,true,HIGH Test: manually testing GCA video recording Change-Id: Ie6c054e641810da9c231f3839961cbe8fcc16fdc
This commit is contained in:
parent
6ec947dc44
commit
4cdc9d3fa2
3 changed files with 90 additions and 12 deletions
|
@ -79,6 +79,32 @@
|
|||
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
|
||||
<CamcorderProfiles cameraId="0">
|
||||
|
||||
<EncoderProfile quality="8kuhd" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="80000000"
|
||||
width="7680"
|
||||
height="4320"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="high" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="72000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="72000000"
|
||||
|
@ -1749,14 +1775,14 @@
|
|||
-->
|
||||
<VideoEncoderCap name="hevc" enabled="true"
|
||||
minBitRate="64000" maxBitRate="100000000"
|
||||
minFrameWidth="128" maxFrameWidth="3840"
|
||||
minFrameHeight="96" maxFrameHeight="2160"
|
||||
minFrameWidth="128" maxFrameWidth="7680"
|
||||
minFrameHeight="96" maxFrameHeight="4320"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="h264" enabled="true"
|
||||
minBitRate="64000" maxBitRate="100000000"
|
||||
minFrameWidth="128" maxFrameWidth="3840"
|
||||
minFrameHeight="96" maxFrameHeight="2160"
|
||||
minFrameWidth="128" maxFrameWidth="7680"
|
||||
minFrameHeight="96" maxFrameHeight="4320"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="h263" enabled="true"
|
||||
|
|
|
@ -79,6 +79,32 @@
|
|||
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
|
||||
<CamcorderProfiles cameraId="0">
|
||||
|
||||
<EncoderProfile quality="8kuhd" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="80000000"
|
||||
width="7680"
|
||||
height="4320"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="high" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="72000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="72000000"
|
||||
|
@ -1736,14 +1762,14 @@
|
|||
-->
|
||||
<VideoEncoderCap name="hevc" enabled="true"
|
||||
minBitRate="64000" maxBitRate="100000000"
|
||||
minFrameWidth="128" maxFrameWidth="3840"
|
||||
minFrameHeight="96" maxFrameHeight="2160"
|
||||
minFrameWidth="128" maxFrameWidth="7680"
|
||||
minFrameHeight="96" maxFrameHeight="4320"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="h264" enabled="true"
|
||||
minBitRate="64000" maxBitRate="100000000"
|
||||
minFrameWidth="128" maxFrameWidth="3840"
|
||||
minFrameHeight="96" maxFrameHeight="2160"
|
||||
minFrameWidth="128" maxFrameWidth="7680"
|
||||
minFrameHeight="96" maxFrameHeight="4320"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="h263" enabled="true"
|
||||
|
|
|
@ -79,6 +79,32 @@
|
|||
<!-- Each camcorder profile defines a set of predefined configuration parameters -->
|
||||
<CamcorderProfiles cameraId="0">
|
||||
|
||||
<EncoderProfile quality="8kuhd" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="80000000"
|
||||
width="7680"
|
||||
height="4320"
|
||||
frameRate="30" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="high" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="72000000"
|
||||
width="3840"
|
||||
height="2160"
|
||||
frameRate="60" />
|
||||
|
||||
<Audio codec="aac"
|
||||
bitRate="96000"
|
||||
sampleRate="48000"
|
||||
channels="1" />
|
||||
</EncoderProfile>
|
||||
|
||||
<EncoderProfile quality="2160p" fileFormat="mp4" duration="60">
|
||||
<Video codec="h264"
|
||||
bitRate="72000000"
|
||||
|
@ -1749,14 +1775,14 @@
|
|||
-->
|
||||
<VideoEncoderCap name="hevc" enabled="true"
|
||||
minBitRate="64000" maxBitRate="100000000"
|
||||
minFrameWidth="128" maxFrameWidth="3840"
|
||||
minFrameHeight="96" maxFrameHeight="2160"
|
||||
minFrameWidth="128" maxFrameWidth="7680"
|
||||
minFrameHeight="96" maxFrameHeight="4320"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="h264" enabled="true"
|
||||
minBitRate="64000" maxBitRate="100000000"
|
||||
minFrameWidth="128" maxFrameWidth="3840"
|
||||
minFrameHeight="96" maxFrameHeight="2160"
|
||||
minFrameWidth="128" maxFrameWidth="7680"
|
||||
minFrameHeight="96" maxFrameHeight="4320"
|
||||
minFrameRate="15" maxFrameRate="30" />
|
||||
|
||||
<VideoEncoderCap name="h263" enabled="true"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue