Loading native/android/libandroid.map.txt +1 −0 Original line number Diff line number Diff line Loading @@ -283,6 +283,7 @@ LIBANDROID { ASurfaceTransaction_setEnableBackPressure; # introduced=31 ASurfaceTransaction_setFrameRate; # introduced=30 ASurfaceTransaction_setFrameRateWithChangeStrategy; # introduced=31 ASurfaceTransaction_setFrameRateParams; # introduced=36 ASurfaceTransaction_clearFrameRate; # introduced=34 ASurfaceTransaction_setFrameTimeline; # introduced=Tiramisu ASurfaceTransaction_setGeometry; # introduced=29 Loading native/android/surface_control.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -731,6 +731,28 @@ void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* aSu transaction->setFrameRate(surfaceControl, frameRate, compatibility, changeFrameRateStrategy); } void ASurfaceTransaction_setFrameRateParams( ASurfaceTransaction* aSurfaceTransaction, ASurfaceControl* aSurfaceControl, float desiredMinRate, float desiredMaxRate, float fixedSourceRate, ANativeWindow_ChangeFrameRateStrategy changeFrameRateStrategy) { CHECK_NOT_NULL(aSurfaceTransaction); CHECK_NOT_NULL(aSurfaceControl); Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction); sp<SurfaceControl> surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl); if (desiredMaxRate < desiredMinRate) { ALOGW("desiredMaxRate must be greater than or equal to desiredMinRate"); return; } // TODO(b/362798998): Fix plumbing to send modern params int compatibility = fixedSourceRate == 0 ? ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_DEFAULT : ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_FIXED_SOURCE; double frameRate = compatibility == ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_FIXED_SOURCE ? fixedSourceRate : desiredMinRate; transaction->setFrameRate(surfaceControl, frameRate, compatibility, changeFrameRateStrategy); } void ASurfaceTransaction_clearFrameRate(ASurfaceTransaction* aSurfaceTransaction, ASurfaceControl* aSurfaceControl) { CHECK_NOT_NULL(aSurfaceTransaction); Loading Loading
native/android/libandroid.map.txt +1 −0 Original line number Diff line number Diff line Loading @@ -283,6 +283,7 @@ LIBANDROID { ASurfaceTransaction_setEnableBackPressure; # introduced=31 ASurfaceTransaction_setFrameRate; # introduced=30 ASurfaceTransaction_setFrameRateWithChangeStrategy; # introduced=31 ASurfaceTransaction_setFrameRateParams; # introduced=36 ASurfaceTransaction_clearFrameRate; # introduced=34 ASurfaceTransaction_setFrameTimeline; # introduced=Tiramisu ASurfaceTransaction_setGeometry; # introduced=29 Loading
native/android/surface_control.cpp +22 −0 Original line number Diff line number Diff line Loading @@ -731,6 +731,28 @@ void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* aSu transaction->setFrameRate(surfaceControl, frameRate, compatibility, changeFrameRateStrategy); } void ASurfaceTransaction_setFrameRateParams( ASurfaceTransaction* aSurfaceTransaction, ASurfaceControl* aSurfaceControl, float desiredMinRate, float desiredMaxRate, float fixedSourceRate, ANativeWindow_ChangeFrameRateStrategy changeFrameRateStrategy) { CHECK_NOT_NULL(aSurfaceTransaction); CHECK_NOT_NULL(aSurfaceControl); Transaction* transaction = ASurfaceTransaction_to_Transaction(aSurfaceTransaction); sp<SurfaceControl> surfaceControl = ASurfaceControl_to_SurfaceControl(aSurfaceControl); if (desiredMaxRate < desiredMinRate) { ALOGW("desiredMaxRate must be greater than or equal to desiredMinRate"); return; } // TODO(b/362798998): Fix plumbing to send modern params int compatibility = fixedSourceRate == 0 ? ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_DEFAULT : ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_FIXED_SOURCE; double frameRate = compatibility == ANATIVEWINDOW_FRAME_RATE_COMPATIBILITY_FIXED_SOURCE ? fixedSourceRate : desiredMinRate; transaction->setFrameRate(surfaceControl, frameRate, compatibility, changeFrameRateStrategy); } void ASurfaceTransaction_clearFrameRate(ASurfaceTransaction* aSurfaceTransaction, ASurfaceControl* aSurfaceControl) { CHECK_NOT_NULL(aSurfaceTransaction); Loading