Add documentation

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-27 13:23:58 +03:00
parent 84fb48f39d
commit b077388b74
24 changed files with 7157 additions and 8 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,373 @@
DISPLAY MANAGER (dumpsys display)
mSafeMode=false
mPendingTraversal=false
mViewports=[DisplayViewport{type=INTERNAL, valid=true, isActive=true, displayId=0, uniqueId='local:4627014146675823360', physicalPort=0, orientation=0, logicalFrame=Rect(0, 0 - 1920, 1080), physicalFrame=Rect(0, 0 - 3840, 2160), deviceWidth=3840, deviceHeight=2160}]
mDefaultDisplayDefaultColorMode=0
mWifiDisplayScanRequestCount=0
mStableDisplaySize=Point(3840, 2160)
mMinimumBrightnessCurve=[(0.0, 0.0), (2000.0, 50.0), (4000.0, 90.0)]
mHdrConversionMode=HdrConversionMode{ConversionMode=HDR_CONVERSION_SYSTEM, PreferredHdrOutputType=HDR_TYPE_INVALID}
Display States: size=1
Display Id=0
Display State=ON
Display Brightness=1.0
Display SdrBrightness=1.0
Display Adapters: size=3
LocalDisplayAdapter
VirtualDisplayAdapter
OverlayDisplayAdapter
mCurrentOverlaySetting=
mOverlays: size=0
Display Devices: size=1
DisplayDeviceInfo{"Встроенный экран": uniqueId="local:4627014146675823360", 3840 x 2160, modeId 1, renderFrameRate 60.000004, defaultModeId 1, supportedModes [{id=1, width=3840, height=2160, fps=60.000004, alternativeRefreshRates=[], supportedHdrTypes=[1, 2, 3, 4]}], colorMode 0, supportedColorModes [0], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[1, 2, 3, 4], mMaxLuminance=100.0, mMaxAverageLuminance=50.0, mMinLuminance=0.05}, allmSupported false, gameContentTypeSupported false, density 640, 59.0 x 59.0 dpi, appVsyncOff 1000000, presDeadline 16666666, touch INTERNAL, rotation 0, type INTERNAL, address {port=0, model=0x403674d9f751d3}, deviceProductInfo DeviceProductInfo{name=MStar Demo, manufacturerPnpId=MST, productId=48, modelYear=null, manufactureDate=ManufactureDate{week=10, year=2014}, connectionToSinkType=1}, state ON, committedState ON, frameRateOverride , brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 1.0, hdrSdrRatio NaN, FLAG_ALLOWED_TO_BE_DEFAULT_DISPLAY, FLAG_ROTATES_WITH_CONTENT, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_TRUSTED, installOrientation 0, displayShape DisplayShape{ spec=-545313861 displayWidth=3840 displayHeight=2160 physicalPixelDisplaySizeRatio=1.0 rotation=0 offsetX=0 offsetY=0 scale=1.0}}
mAdapter=LocalDisplayAdapter
mUniqueId=local:4627014146675823360
mDisplayToken=android.os.BinderProxy@b7048f
mCurrentLayerStack=0
mCurrentFlags=1
mCurrentOrientation=0
mCurrentLayerStackRect=Rect(0, 0 - 1920, 1080)
mCurrentDisplayRect=Rect(0, 0 - 3840, 2160)
mCurrentSurface=null
mPhysicalDisplayId=4627014146675823360
mDisplayModeSpecs={baseModeId=1 allowGroupSwitching=false primary=physical: (0.0 Infinity) render: (0.0 60.0) appRequest=physical: (0.0 Infinity) render: (0.0 Infinity)}
mDisplayModeSpecsInvalid=false
mActiveModeId=1
mActiveColorMode=0
mDefaultModeId=1
mUserPreferredModeId=-1
mState=ON
mCommittedState=ON
mBrightnessState=1.0
mBacklightAdapter=BacklightAdapter [useSurfaceControl=true (force_anyway? true), backlight=null]
mAllmSupported=false
mAllmRequested=false
mGameContentTypeSupported=false
mGameContentTypeRequested=false
mStaticDisplayInfo=StaticDisplayInfo{isInternal=true, density=2.0, secure=true, deviceProductInfo=DeviceProductInfo{name=MStar Demo, manufacturerPnpId=MST, productId=48, modelYear=null, manufactureDate=ManufactureDate{week=10, year=2014}, connectionToSinkType=1}, installOrientation=0}
mSfDisplayModes=
DisplayMode{id=0, width=3840, height=2160, xDpi=59.0, yDpi=59.0, refreshRate=60.000004, appVsyncOffsetNanos=1000000, presentationDeadlineNanos=16666666, supportedHdrTypes=[1, 2, 3, 4], group=0}
mActiveSfDisplayMode=DisplayMode{id=0, width=3840, height=2160, xDpi=59.0, yDpi=59.0, refreshRate=60.000004, appVsyncOffsetNanos=1000000, presentationDeadlineNanos=16666666, supportedHdrTypes=[1, 2, 3, 4], group=0}
mActiveRenderFrameRate=60.000004
mSupportedModes=
DisplayModeRecord{mMode={id=1, width=3840, height=2160, fps=60.000004, alternativeRefreshRates=[], supportedHdrTypes=[1, 2, 3, 4]}}
mSupportedColorModes=[0]
mDisplayDeviceConfig=DisplayDeviceConfig{mLoadedFrom=/vendor/etc/displayconfig/display_id_4627014146675823360.xml, mBacklight=[0.035433073, 0.5, 1.0], mNits=[7.0866146, 100.0, 200.0], mRawBacklight=[0.0, 0.5, 1.0], mRawNits=[0.0, 100.0, 200.0], mInterpolationType=0, mBrightness=[0.0, 0.48163262, 1.0], mBrightnessToBacklightSpline=MonotoneCubicSpline{[(0.0, 0.035433073: 0.96456695), (0.48163262, 0.5: 0.9645669), (1.0, 1.0: 0.9645668)]}, mBacklightToBrightnessSpline=MonotoneCubicSpline{[(0.035433073, 0.0: 1.0367347), (0.5, 0.48163262: 1.0367348), (1.0, 1.0: 1.0367348)]}, mNitsToBacklightSpline=MonotoneCubicSpline{[(7.0866146, 0.035433073: 0.005), (100.0, 0.5: 0.005), (200.0, 1.0: 0.005)]}, mBacklightMinimum=0.035433073, mBacklightMaximum=1.0, mBrightnessDefault=1.0, mQuirks=[canSetBrightnessViaHwc], isHbmEnabled=false, mHbmData=null, mSdrToHdrRatioSpline=null, mThermalBrightnessThrottlingDataMapByThrottlingId={}
, mBrightnessRampFastDecrease=0.70472443, mBrightnessRampFastIncrease=0.70472443, mBrightnessRampSlowDecrease=0.23228346, mBrightnessRampSlowIncrease=0.23228346, mBrightnessRampDecreaseMaxMillis=0, mBrightnessRampIncreaseMaxMillis=0
, mAmbientHorizonLong=10000, mAmbientHorizonShort=2000
, mScreenDarkeningMinThreshold=0.0, mScreenDarkeningMinThresholdIdle=0.0, mScreenBrighteningMinThreshold=0.0, mScreenBrighteningMinThresholdIdle=0.0, mAmbientLuxDarkeningMinThreshold=0.0, mAmbientLuxDarkeningMinThresholdIdle=0.0, mAmbientLuxBrighteningMinThreshold=0.0, mAmbientLuxBrighteningMinThresholdIdle=0.0
, mScreenBrighteningLevels=[0.0], mScreenBrighteningPercentages=[10.0], mScreenDarkeningLevels=[0.0], mScreenDarkeningPercentages=[20.0], mAmbientBrighteningLevels=[0.0], mAmbientBrighteningPercentages=[10.0], mAmbientDarkeningLevels=[0.0], mAmbientDarkeningPercentages=[20.0]
, mAmbientBrighteningLevelsIdle=[0.0], mAmbientBrighteningPercentagesIdle=[10.0], mAmbientDarkeningLevelsIdle=[0.0], mAmbientDarkeningPercentagesIdle=[20.0], mScreenBrighteningLevelsIdle=[0.0], mScreenBrighteningPercentagesIdle=[10.0], mScreenDarkeningLevelsIdle=[0.0], mScreenDarkeningPercentagesIdle=[20.0]
, mAmbientLightSensor=Sensor{type: , name: , refreshRateRange: [0.0, Infinity]} , mScreenOffBrightnessSensor=Sensor{type: null, name: null, refreshRateRange: [0.0, Infinity]} , mProximitySensor=Sensor{type: null, name: null, refreshRateRange: [0.0, Infinity]} , mRefreshRateLimitations= [], mDensityMapping= DensityMapping{mDensityMappingEntries=[DensityMappingEntry{squaredDiagonal=19411200, density=640}]}, mAutoBrightnessBrighteningLightDebounce= 4000, mAutoBrightnessDarkeningLightDebounce= 8000, mBrightnessLevelsLux= [0.0], mBrightnessLevelsNits= [], mDdcAutoBrightnessAvailable= true, mAutoBrightnessAvailable= false
, mDefaultLowBlockingZoneRefreshRate= 0, mDefaultHighBlockingZoneRefreshRate= 0, mDefaultPeakRefreshRate= 0, mDefaultRefreshRate= 60, mRefreshRateZoneProfiles= {}, mDefaultRefreshRateInHbmHdr= 0, mDefaultRefreshRateInHbmSunlight= 0, mRefreshRateThrottlingMap= {}
, mLowDisplayBrightnessThresholds= [], mLowAmbientBrightnessThresholds= [], mHighDisplayBrightnessThresholds= [], mHighAmbientBrightnessThresholds= []
, mScreenOffBrightnessSensorValueToLux=null
, mUsiVersion= null}
LogicalDisplayMapper:
mSingleDisplayDemoMode=false
mCurrentLayout=[{dispId: 0(ON), displayGroupName: , addr: {port=0, model=0x403674d9f751d3}, mThermalBrightnessThrottlingMapId: null, mRefreshRateZoneId: null, mLeadDisplayId: -1, mThermalRefreshRateThrottlingMapId: null}]
mDeviceStatesOnWhichToWakeUp={}
mDeviceStatesOnWhichToSleep={}
mInteractive=true
mBootCompleted=true
mDeviceState=0
mPendingDeviceState=-1
mDeviceStateToBeAppliedAfterBoot=-1
Logical Displays: size=1
Display 0:
mDisplayId=0
mIsEnabled=true
mIsInTransition=false
mLayerStack=0
mPosition=-1
mHasContent=true
mDesiredDisplayModeSpecs={baseModeId=1 allowGroupSwitching=false primary=physical: (0.0 Infinity) render: (0.0 60.0) appRequest=physical: (0.0 Infinity) render: (0.0 Infinity)}
mRequestedColorMode=0
mDisplayOffset=(0, 0)
mDisplayScalingDisabled=false
mPrimaryDisplayDevice=Встроенный экран
mBaseDisplayInfo=DisplayInfo{"Встроенный экран", displayId 0, displayGroupId 0, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_TRUSTED, real 3840 x 2160, largest app 3840 x 2160, smallest app 3840 x 2160, appVsyncOff 1000000, presDeadline 16666666, mode 160.000004, defaultMode 1, modes [{id=1, width=3840, height=2160, fps=60.000004, alternativeRefreshRates=[], supportedHdrTypes=[1, 2, 3, 4]}], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[1, 2, 3, 4], mMaxLuminance=100.0, mMaxAverageLuminance=50.0, mMinLuminance=0.05}, userDisabledHdrTypes [], minimalPostProcessingSupported false, rotation 0, state ON, committedState ON, type INTERNAL, uniqueId "local:4627014146675823360", app 3840 x 2160, density 640 (59.0 x 59.0) dpi, layerStack 0, colorMode 0, supportedColorModes [0], address {port=0, model=0x403674d9f751d3}, deviceProductInfo DeviceProductInfo{name=MStar Demo, manufacturerPnpId=MST, productId=48, modelYear=null, manufactureDate=ManufactureDate{week=10, year=2014}, connectionToSinkType=1}, removeMode 0, refreshRateOverride 0.0, brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 1.0, installOrientation ROTATION_0, layoutLimitedRefreshRate null, hdrSdrRatio not_available, thermalRefreshRateThrottling {}, thermalBrightnessThrottlingDataId default}
mOverrideDisplayInfo=DisplayInfo{"Встроенный экран", displayId 0, displayGroupId 0, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS, FLAG_TRUSTED, real 1920 x 1080, largest app 1920 x 1920, smallest app 1080 x 1080, appVsyncOff 1000000, presDeadline 16666666, mode 160.000004, defaultMode 1, modes [{id=1, width=3840, height=2160, fps=60.000004, alternativeRefreshRates=[], supportedHdrTypes=[1, 2, 3, 4]}], hdrCapabilities HdrCapabilities{mSupportedHdrTypes=[1, 2, 3, 4], mMaxLuminance=100.0, mMaxAverageLuminance=50.0, mMinLuminance=0.05}, userDisabledHdrTypes [], minimalPostProcessingSupported false, rotation 0, state ON, committedState ON, type INTERNAL, uniqueId "local:4627014146675823360", app 1920 x 1080, density 320 (29.5 x 29.5) dpi, layerStack 0, colorMode 0, supportedColorModes [0], address {port=0, model=0x403674d9f751d3}, deviceProductInfo DeviceProductInfo{name=MStar Demo, manufacturerPnpId=MST, productId=48, modelYear=null, manufactureDate=ManufactureDate{week=10, year=2014}, connectionToSinkType=1}, removeMode 0, refreshRateOverride 60.000004, brightnessMinimum 0.0, brightnessMaximum 1.0, brightnessDefault 1.0, installOrientation ROTATION_0, layoutLimitedRefreshRate null, hdrSdrRatio not_available, thermalRefreshRateThrottling {}, thermalBrightnessThrottlingDataId default}
mRequestedMinimalPostProcessing=false
mFrameRateOverrides=[]
mPendingFrameRateOverrideUids={}
mDisplayGroupName=
mThermalBrightnessThrottlingDataId=default
mLeadDisplayId=-1
mLayoutLimitedRefreshRate=null
mThermalRefreshRateThrottling={}
DeviceStateToLayoutMap:
Registered Layouts:
state(-1): [{dispId: 0(ON), displayGroupName: , addr: {port=0, model=0x403674d9f751d3}, mThermalBrightnessThrottlingMapId: null, mRefreshRateZoneId: null, mLeadDisplayId: -1, mThermalRefreshRateThrottlingMapId: null}]
Callbacks: size=12
0: mPid=750, mWifiDisplayScanRequested=false
1: mPid=1115, mWifiDisplayScanRequested=false
2: mPid=1365, mWifiDisplayScanRequested=false
3: mPid=1500, mWifiDisplayScanRequested=false
4: mPid=1961, mWifiDisplayScanRequested=false
5: mPid=2223, mWifiDisplayScanRequested=false
6: mPid=3734, mWifiDisplayScanRequested=false
7: mPid=9064, mWifiDisplayScanRequested=false
8: mPid=9914, mWifiDisplayScanRequested=false
9: mPid=17555, mWifiDisplayScanRequested=false
10: mPid=18239, mWifiDisplayScanRequested=false
11: mPid=28050, mWifiDisplayScanRequested=false
Display Power Controllers: size=1
Display Power Controller:
mDisplayId=0
mLeadDisplayId=-1
mLightSensor=null
mDisplayBrightnessFollowers={}
Display Power Controller Locked State:
mDisplayReadyLocked=true
mPendingRequestLocked=policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=NaN, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=1.0, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=NaN, dozeScreenState=UNKNOWN
mPendingRequestChangedLocked=false
mPendingUpdatePowerStateLocked=false
Display Power Controller Configuration:
mScreenBrightnessDozeConfig=0.0
mScreenBrightnessDimConfig=0.05
mUseSoftwareAutoBrightnessConfig=false
mSkipScreenOnBrightnessRamp=false
mColorFadeFadesConfig=false
mColorFadeEnabled=false
mIsDisplayInternal=true
mCachedBrightnessInfo.brightness=1.0
mCachedBrightnessInfo.adjustedBrightness=1.0
mCachedBrightnessInfo.brightnessMin=0.0
mCachedBrightnessInfo.brightnessMax=1.0
mCachedBrightnessInfo.hbmMode=0
mCachedBrightnessInfo.hbmTransitionPoint=Infinity
mCachedBrightnessInfo.brightnessMaxReason =0
mDisplayBlanksAfterDozeConfig=false
mBrightnessBucketsInDozeConfig=false
Display Power Controller Thread State:
mPowerRequest=policy=BRIGHT, useProximitySensor=false, screenBrightnessOverride=NaN, screenAutoBrightnessAdjustmentOverride=NaN, screenLowPowerBrightnessFactor=1.0, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=NaN, dozeScreenState=UNKNOWN
mBrightnessReason=manual
mAppliedDimming=false
mAppliedLowPower=false
mAppliedThrottling=false
mDozing=false
mSkipRampState=RAMP_STATE_SKIP_NONE
mScreenOnBlockStartRealTime=580658077
mScreenOffBlockStartRealTime=521250842
mPendingScreenOnUnblocker=null
mPendingScreenOffUnblocker=null
mPendingScreenOff=false
mReportedToPolicy=REPORTED_TO_POLICY_SCREEN_ON
mIsRbcActive=false
AutomaticBrightnessStrategy:
mDisplayId=0
mAutoBrightnessAdjustment=0.0
mPendingAutoBrightnessAdjustment=NaN
mTemporaryAutoBrightnessAdjustment=NaN
mShouldResetShortTermModel=false
mAppliedAutoBrightness=false
mAutoBrightnessAdjustmentChanged=false
mAppliedTemporaryAutoBrightnessAdjustment=false
mUseAutoBrightness=false
mWasShortTermModelActive=false
mAutoBrightnessAdjustmentReasonsFlags=0
mScreenBrightnessRampAnimator.isAnimating()=false
Display Power State:
mStopped=false
mScreenState=ON
mScreenBrightness=1.0
mSdrScreenBrightness=1.0
mScreenReady=true
mScreenUpdatePending=false
mColorFadePrepared=false
mColorFadeLevel=1.0
mColorFadeReady=true
mColorFadeDrawPending=false
Photonic Modulator State:
mPendingState=ON
mPendingBacklight=1.0
mPendingSdrBacklight=1.0
mActualState=ON
mActualBacklight=1.0
mActualSdrBacklight=1.0
mStateChangeInProgress=false
mBacklightChangeInProgress=false
No Reduce Bright Colors Adjustments
HighBrightnessModeController:
mBrightness=0.0
mUnthrottledBrightness=0.0
mThrottlingReason=none
mCurrentMin=0.0
mCurrentMax=1.0
mHbmMode=off
mHbmStatsState=HBM_OFF
mHbmData=null
mAmbientLux=0.0 (old/invalid)
mIsInAllowedAmbientRange=false
mIsAutoBrightnessEnabled=false
mIsAutoBrightnessOffByState=false
mIsHdrLayerPresent=false
mBrightnessMin=0.0
mBrightnessMax=1.0
remainingTime=0
mIsTimeAvailable= false
mRunningStartTimeMillis=-1 (51650707 ms ago)
mIsBlockedByLowPowerMode=false
width*height=3840*2160
mEvents=
BrightnessThrottler:
mThermalBrightnessThrottlingDataId=default
mThermalThrottlingData=null
mUniqueDisplayId=local:4627014146675823360
mThrottlingStatus=-1
mBrightnessCap=1.0
mBrightnessMaxReason=none
mDdcThermalThrottlingDataMap={}
mThermalBrightnessThrottlingDataOverride={}
mThermalBrightnessThrottlingDataString=null
SkinThermalStatusObserver:
mStarted: false
ThermalService not available
WakelockController State:
mDisplayId=0
mUnfinishedBusiness=false
mOnStateChangePending=false
mOnProximityPositiveMessages=false
mOnProximityNegativeMessages=false
DisplayBrightnessController:
mDisplayId=: 0
mScreenBrightnessDefault=1.0
mPersistBrightnessNitsForDefaultDisplay=false
mPendingScreenBrightness=NaN
mCurrentScreenBrightness=1.0
mLastUserSetScreenBrightness=NaN
Last selected DisplayBrightnessStrategy= InvalidBrightnessStrategy
DisplayBrightnessStrategySelector:
mDisplayId= 0
mOldBrightnessStrategyName= InvalidBrightnessStrategy
mAllowAutoBrightnessWhileDozingConfig= false
TemporaryBrightnessStrategy:
mTemporaryScreenBrightness:NaN
DisplayStateController:
mPerformScreenOffTransition:false
DisplayPowerProximityStateController:
mPendingWaitForNegativeProximityLocked=false
mDisplayId=0
mWaitingForNegativeProximity=false
mIgnoreProximityUntilChanged=false
mProximitySensor=null
mProximitySensorEnabled=false
mProximityThreshold=0.0
mProximity=Unknown
mPendingProximity=Unknown
mPendingProximityDebounceTime=-1 (51650707 ms ago)
mScreenOffBecauseOfProximity=false
mSkipRampBecauseOfProximityChangeToNegative=false
PersistentDataStore
mLoaded=true
mDirty=false
RememberedWifiDisplays:
DisplayStates:
0: local:4627014146675823360
ColorMode=0
BrightnessValue=1.0
DisplayBrightnessConfigurations:
Resolution=0 0
RefreshRate=0.0
StableDeviceValues:
StableDisplayWidth=3840
StableDisplayHeight=2160
GlobalBrightnessConfigurations:
mBrightnessNitsForDefaultDisplay=-1.0
Display Window Policy Controllers: size=0
BrightnessTracker state:
mStarted=false
mLightSensor=null
mLastBatteryLevel=NaN
mLastBrightness=-1.0
mEventsDirty=false
mEvents.size=0
mWriteBrightnessTrackerStateScheduled=false
mSensorRegistered=false
mColorSamplingEnabled=false
mNoFramesToSample=0
mFrameRate=0.0
DisplayModeDirector
mSupportedModesByDisplay:
0 -> [{id=1, width=3840, height=2160, fps=60.000004, alternativeRefreshRates=[], supportedHdrTypes=[1, 2, 3, 4]}]
mDefaultModeByDisplay:
0 -> {id=1, width=3840, height=2160, fps=60.000004, alternativeRefreshRates=[], supportedHdrTypes=[1, 2, 3, 4]}
mModeSwitchingType: SWITCHING_TYPE_WITHIN_GROUPS
mAlwaysRespectAppRequest: false
SettingsObserver
mDefaultRefreshRate: 60.0
mDefaultPeakRefreshRate: 0.0
AppRequestObserver
mAppRequestedModeByDisplay:
mAppPreferredRefreshRateRangeByDisplay:
BrightnessObserver
mAmbientLux: -1.0
mBrightness: 255
mDefaultDisplayState: 2
mLowPowerModeEnabled: false
mRefreshRateChangeable: false
mShouldObserveDisplayLowChange: false
mShouldObserveAmbientLowChange: false
mRefreshRateInLowZone: 0
mShouldObserveDisplayHighChange: false
mShouldObserveAmbientHighChange: false
mRefreshRateInHighZone: 0
mRegisteredLightSensor: null
mLightSensor: null
mLightSensorName:
mLightSensorType:
mLastSensorData: 0.0
mTimestamp: 1970-01-01 03:00:00.000
UdfpsObserver
mUdfpsRefreshRateEnabled:
mAuthenticationPossible:
HbmObserver
mHbmMode: {}
mHbmActive: {}
mRefreshRateInHbmSunlight: 0
mRefreshRateInHbmHdr: 0
SkinThermalStatusObserver:
mStatus: 0
mThermalThrottlingByDisplay: {0={}}
mVotesByDisplay:
-1:
PRIORITY_USER_SETTING_MIN_RENDER_FRAME_RATE -> Vote: {width: -1, height: -1, refreshRateRanges: physical: (0.0 Infinity) render: (0.0 Infinity), disableRefreshRateSwitching: false, appRequestBaseModeRefreshRate: 0.0}
PRIORITY_DEFAULT_REFRESH_RATE -> Vote: {width: -1, height: -1, refreshRateRanges: physical: (0.0 Infinity) render: (0.0 60.0), disableRefreshRateSwitching: false, appRequestBaseModeRefreshRate: 0.0}
SensorObserver
mIsProxActive=false
mDozeStateByDisplay:
0 -> false
BrightnessSynchronizer
mLatestIntBrightness=255
mLatestFloatBrightness=1.0
mCurrentUpdate=null
mPendingUpdate=null

View File

@@ -0,0 +1,755 @@
<?xml version="1.0" encoding="utf-8" ?>
<!-- Copyright (C) 2012 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!--
<!DOCTYPE MediaCodecs [
<!ELEMENT MediaCodecs (Decoders,Encoders)>
<!ELEMENT Decoders (MediaCodec*)>
<!ELEMENT Encoders (MediaCodec*)>
<!ELEMENT MediaCodec (Type*,Quirk*)>
<!ATTLIST MediaCodec name CDATA #REQUIRED>
<!ATTLIST MediaCodec type CDATA>
<!ELEMENT Type EMPTY>
<!ATTLIST Type name CDATA #REQUIRED>
<!ELEMENT Quirk EMPTY>
<!ATTLIST Quirk name CDATA #REQUIRED>
]>
There's a simple and a complex syntax to declare the availability of a
media codec:
A codec that properly follows the OpenMax spec and therefore doesn't have any
quirks and that only supports a single content type can be declared like so:
<MediaCodec name="OMX.foo.bar" type="something/interesting" />
If a codec has quirks OR supports multiple content types, the following syntax
can be used:
<MediaCodec name="OMX.foo.bar" >
<Type name="something/interesting" />
<Type name="something/else" />
...
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Quirk name="output-buffers-are-unreadable" />
</MediaCodec>
Only the three quirks included above are recognized at this point:
"requires-allocate-on-input-ports"
must be advertised if the component does not properly support specification
of input buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"requires-allocate-on-output-ports"
must be advertised if the component does not properly support specification
of output buffers using the OMX_UseBuffer(...) API but instead requires
OMX_AllocateBuffer to be used.
"output-buffers-are-unreadable"
must be advertised if the emitted output buffers of a decoder component
are not readable, i.e. use a custom format even though abusing one of
the official OMX colorspace constants.
Clients of such decoders will not be able to access the decoded data,
naturally making the component much less useful. The only use for
a component with this quirk is to render the output to the screen.
Audio decoders MUST NOT advertise this quirk.
Video decoders that advertise this quirk must be accompanied by a
corresponding color space converter for thumbnail extraction,
matching surfaceflinger support that can render the custom format to
a texture and possibly other code, so just DON'T USE THIS QUIRK.
-->
<MediaCodecs>
<Settings>
<Setting name="max-video-encoder-input-buffers" value="1" />
<Setting name="supports-multiple-secure-codecs" value="true" />
<Setting name="supports-secure-with-non-secure-codec" value="true" />
</Settings>
<Decoders>
<MediaCodec name="c2.mtk.atv.decoder" type="tv/atv" >
<Limit name="concurrent-instances" max="2" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.hdmi.decoder" type="tv/hdmi" >
<Limit name="concurrent-instances" max="2" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.component.decoder" type="tv/component" >
<Limit name="concurrent-instances" max="2" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.composite.decoder" type="tv/composite" >
<Limit name="concurrent-instances" max="2" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.avc.decoder" type="video/avc" >
<Limit name="concurrent-instances" max="16" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="7680x4320" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="low-latency" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.avc.decoder.secure" type="video/avc" >
<Limit name="concurrent-instances" max="16" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="7680x4320" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.hevc.decoder" type="video/hevc" >
<Limit name="concurrent-instances" max="16" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="7680x4320" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="low-latency" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-7680x4320" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.hevc.decoder.secure" type="video/hevc" >
<Limit name="concurrent-instances" max="16" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="7680x4320" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-7680x4320" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.shvc.decoder" type="video/vnd.shvc" >
<Limit name="concurrent-instances" max="16" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="4096x2176" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.shvc.decoder.secure" type="video/vnd.shvc" >
<Limit name="concurrent-instances" max="16" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="4096x2176" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.mpeg4.decoder" type="video/mp4v-es" >
<Limit name="concurrent-instances" max="16" />
<Limit name="size" min="16x16" max="1920x1088" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.h263.decoder" type="video/3gpp" >
<Limit name="concurrent-instances" max="16" />
<Limit name="size" min="16x16" max="1408x1152" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1280x720" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.mpeg2.decoder" type="video/mpeg2" >
<Limit name="concurrent-instances" max="16" />
<Limit name="size" min="16x16" max="1920x1088" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.mpeg2.decoder.secure" type="video/mpeg2" >
<Limit name="concurrent-instances" max="16" />
<Limit name="size" min="16x16" max="1920x1088" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.vp8.decoder" type="video/x-vnd.on2.vp8" >
<Limit name="concurrent-instances" max="16" />
<Limit name="size" min="128x128" max="1920x1088" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.vp9.decoder" type="video/x-vnd.on2.vp9" >
<Limit name="concurrent-instances" max="16" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="7680x4320" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="low-latency" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.vp9.decoder.secure" type="video/x-vnd.on2.vp9" >
<Limit name="concurrent-instances" max="16" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="7680x4320" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
<Limit name="performance-point-3840x2160" value="30" />
<Limit name="performance-point-7680x4320" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.av1.decoder" type="video/av01" >
<Limit name="concurrent-instances" max="16" />
<Limit name="size" min="64x64" max="7680x4320" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="tunneled-playback" />
<Feature name="adaptive-playback" />
<Feature name="low-latency" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-7680x4320" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.av1.decoder.secure" type="video/av01" >
<Limit name="concurrent-instances" max="16" />
<Limit name="size" min="64x64" max="7680x4320" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="tunneled-playback" />
<Feature name="adaptive-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-7680x4320" value="60" />
<Feature name="secure-playback" required="true" />
<Feature name="low-latency" />
</MediaCodec>
<MediaCodec name="c2.mtk.mjpeg.decoder" type="video/x-motion-jpeg" >
<Limit name="concurrent-instances" max="16" />
<Limit name="size" min="8x8" max="1920x1088" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.vc1.decoder" type="video/VC1" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="32x32" max="1920x1088" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.flv.decoder" type="video/flv" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="16x16" max="1920x1088" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.avs.decoder" type="video/avs" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="1920x1088" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.avs2.decoder" type="video/avs2" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2160" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.wmv3.decoder" type="video/x-ms-wmv" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="32x32" max="1920x1088" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.rv.decoder" type="video/vnd.rn-realvideo" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="32x32" max="1920x1088" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-1920x1088" value="60" />
</MediaCodec>
<!--
<MediaCodec name="c2.mtk.dvav.per.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvav.per.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvav.pen.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvav.pen.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.der.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.der.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.den.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.den.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.dtr.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.dtr.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.stn.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.stn.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.dth.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.dth.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.dtb.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.dtb.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.st.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvhe.st.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvav.se.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvav.se.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvav1.10.decoder" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
<MediaCodec name="c2.mtk.dvav1.10.decoder.secure" type="video/dolby-vision" >
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="64x64" max="4096x2176" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Feature name="adaptive-playback" />
<Feature name="tunneled-playback" />
<Feature name="secure-playback" required="true" />
<Limit name="performance-point-3840x2160" value="60" />
<Limit name="performance-point-4096x2176" value="60" />
</MediaCodec>
-->
<MediaCodec name="c2.mtk.hdmi.capture" type="audio/vnd.hdmicap">
<Limit name="channel-count" max="8" />
<Limit name="sample-rate" ranges="8000-48000" />
<Limit name="bitrate" range="8000-960000" />
</MediaCodec>
<MediaCodec name="c2.mtk.atv.capture" type="audio/vnd.atvcap">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</MediaCodec>
<MediaCodec name="c2.mtk.analog.capture" type="audio/vnd.analogcap">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</MediaCodec>
<MediaCodec name="c2.mtk.ac3.decoder">
<Type name="audio/ac3">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
<Type name="audio/eac3">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
<Type name="audio/eac3-joc">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
</MediaCodec>
<MediaCodec name="c2.mtk.dts.decoder">
<Type name="audio/vnd.dts">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
<Type name="audio/vnd.dts.hd">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
<Type name="audio/vnd.dts.hd;profile=lbr">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
<Type name="audio/vnd.dts.uhd;profile=p2">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
<Limit name="concurrent-instances" max="2" />
</Type>
</MediaCodec>
<MediaCodec name="c2.mtk.adts.decoder">
<Type name="audio/aac-adts">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
<Type name="audio/mp4a-latm-hw">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
</MediaCodec>
<MediaCodec name="c2.mtk.mpeg.decoder">
<Type name="audio/mpeg-L1">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
<Type name="audio/mpeg-L2">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
</MediaCodec>
<MediaCodec name="c2.mtk.wma.decoder">
<Type name="audio/x-ms-wmapro">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
<Type name="audio/x-ms-wma">
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</Type>
</MediaCodec>
<MediaCodec name="c2.mtk.adpcmima.decoder" type="audio/x-adpcm-dvi-ima" >
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</MediaCodec>
<MediaCodec name="c2.mtk.adpcmms.decoder" type="audio/x-adpcm-ms" >
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</MediaCodec>
<MediaCodec name="c2.mtk.cook.decoder" type="audio/vnd.rn-realaudio" >
<Limit name="channel-count" max="2" />
<Limit name="sample-rate" ranges="8000-48000" />
</MediaCodec>
<MediaCodec name="c2.mtk.heif.decoder" type="image/vnd.android.heic" >
<Limit name="concurrent-instances" max="2" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="16383x16383" />
<Limit name="blocks-per-second" min="1" max="2088960" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.jpeg.decoder" type="image/jpeg" >
<Limit name="concurrent-instances" max="1" />
<Limit name="alignment" value="32x16" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="8x8" max="16383x16383" />
<Limit name="blocks-per-second" min="1" max="2088960" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="c2.mtk.frame.filter" type="image/vnd.android.filter" >
<Limit name="concurrent-instances" max="2" />
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="size" min="64x64" max="16383x16383" />
<Limit name="blocks-per-second" min="1" max="2088960" />
<Limit name="performance-point-1920x1088" value="30" />
</MediaCodec>
<MediaCodec name="OMX.MS.MP1.Decoder" >
<Type name="audio/mpeg-L1">
<Limit name="concurrent-instances" max="2" />
</Type>
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.MP2.Decoder" >
<Type name="audio/mpeg-L2">
<Limit name="concurrent-instances" max="2" />
</Type>
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.MP3.Decoder" >
<Type name="audio/mpeg">
<Limit name="concurrent-instances" max="2" />
</Type>
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.AAC.Decoder" type="audio/mp4a-latm-hw" >
<Limit name="concurrent-instances" max="2" />
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.VORBIS.Decoder" type="audio/vorbis" >
<Limit name="concurrent-instances" max="2" />
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.ADPCM.Decoder">
<Type name="audio/adpcm" />
<Type name="audio/x-adpcm-ms" />
<Type name="audio/x-adpcm-ima" />
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.LPCM.Decoder" type="audio/lpcm" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.RA.Decoder" type="audio/vnd.rn-realaudio" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.WMA.Decoder" >
<Type name="audio/x-ms-wma" />
<Type name="audio/x-ms-wmapro" />
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.AC3.Decoder" >
<Type name="audio/ac3">
<Limit name="channel-count" max="6" />
<Limit name="sample-rate" ranges="8000-48000" />
<Limit name="concurrent-instances" max="2" />
</Type>
<Type name="audio/eac3">
<Limit name="channel-count" max="6" />
<Limit name="sample-rate" ranges="8000-48000" />
<Limit name="concurrent-instances" max="2" />
</Type>
<Type name="audio/ac3p">
<Limit name="concurrent-instances" max="2" />
</Type>
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.DTS.Decoder" >
<Type name="audio/dts" />
<Type name="audio/dts-hd" />
<Type name="audio/dts-lbr" />
<Type name="audio/vnd.dts" />
<Type name="audio/vnd.dts.hd" />
<Type name="audio/vnd.dts.hd;profile=lbr" />
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.DRA.Decoder" type="audio/dra" >
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
<MediaCodec name="OMX.MS.FLAC.Decoder" type="audio/flac" >
<Limit name="concurrent-instances" max="2" />
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
</MediaCodec>
</Decoders>
<Encoders>
<MediaCodec name="c2.mtk.avc.encoder" type="video/avc">
<Limit name="concurrent-instances" max="2" />
<Limit name="size" min="176x144" max="1920x1088" />
<!--<Limit name="aspect-ratio" in="blocks" range="11:9-16:9" />-->
<Limit name="alignment" value="2x2" />
<Limit name="block-size" value="16x16" />
<Limit name="bitrate" range="102400-28000000" />
<!--<Quirk name="kAvoidMemcopyInputRecordingFrames" />-->
<Quirk name="requires-allocate-on-input-ports" />
<Quirk name="requires-allocate-on-output-ports" />
<Limit name="performance-point-1920x1088" value="60" />
<Limit name="blocks-per-second" range="1-489600" />
<Limit name="frame-rate" range="1-60" />
</MediaCodec>
</Encoders>
</MediaCodecs>