Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 119b2009 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 12596896 from dfbbb447 to 25Q2-release

Change-Id: I8cea79b3ddf78373dc16088dfb1c5cc37ffe3034
parents 6e909ea6 dfbbb447
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -51,6 +51,9 @@
    <!-- Feature to specify if the device supports adding device admins. -->
    <feature name="android.software.device_admin" />

    <!-- Feature to specify if the device support managed users. -->
    <feature name="android.software.managed_users" />

    <!-- Devices with all optimizations required to support VR Mode and
         pass all CDD requirements for this feature may include
         android.hardware.vr.high_performance -->
+0 −1
Original line number Diff line number Diff line
@@ -52,7 +52,6 @@
 *   - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES
 */

#include <android/api-level.h>
#include <stdbool.h>
#include <stdint.h>
#include <unistd.h>
+63 −0
Original line number Diff line number Diff line
@@ -762,6 +762,69 @@ void ASurfaceTransaction_setFrameRateWithChangeStrategy(ASurfaceTransaction* _No
                                                        int8_t changeFrameRateStrategy)
                                                        __INTRODUCED_IN(31);

/**
 * Sets the intended frame rate for the given \a surface_control.
 *
 * On devices that are capable of running the display at different frame rates,
 * the system may choose a display refresh rate to better match this surface's frame
 * rate. Usage of this API won't introduce frame rate throttling, or affect other
 * aspects of the application's frame production pipeline. However, because the system
 * may change the display refresh rate, calls to this function may result in changes
 * to Choreographer callback timings, and changes to the time interval at which the
 * system releases buffers back to the application.
 *
 * You can register for changes in the refresh rate using
 * \a AChoreographer_registerRefreshRateCallback.
 *
 * See ASurfaceTransaction_clearFrameRate().
 *
 * Available since API level 36.
 *
 * \param desiredMinRate The desired minimum frame rate (inclusive) for the surface, specifying that
 * the surface prefers the device render rate to be at least `desiredMinRate`.
 *
 * <p>Set `desiredMinRate` = `desiredMaxRate` to indicate the surface prefers an exact frame rate.
 *
 * <p>Set `desiredMinRate` = 0 to indicate the surface has no preference
 * and any frame rate is acceptable.
 *
 * <p>The value should be greater than or equal to 0.
 *
 * \param desiredMaxRate The desired maximum frame rate (inclusive) for the surface, specifying that
 * the surface prefers the device render rate to be at most `desiredMaxRate`.
 *
 * <p>Set `desiredMaxRate` = `desiredMinRate` to indicate the surface prefers an exact frame rate.
 *
 * <p>Set `desiredMaxRate` = positive infinity to indicate the surface has no preference
 * and any frame rate is acceptable.
 *
 * <p>The value should be greater than or equal to `desiredMinRate`.
 *
 * \param fixedSourceRate The "fixed source" frame rate of the surface if the content has an
 * inherently fixed frame rate, e.g. a video that has a specific frame rate.
 *
 * <p>When the frame rate chosen for the surface is the `fixedSourceRate` or a
 * multiple, the surface can render without frame pulldown, for optimal smoothness. For
 * example, a 30 fps video (`fixedSourceRate`=30) renders just as smoothly on 30 fps,
 * 60 fps, 90 fps, 120 fps, and so on.
 *
 * <p>Setting the fixed source rate can also be used together with a desired
 * frame rate min and max via setting `desiredMinRate` and `desiredMaxRate`. This still
 * means the surface's content has a fixed frame rate of `fixedSourceRate`, but additionally
 * specifies the preference to be in the range [`desiredMinRate`, `desiredMaxRate`]. For example, an
 * app might want to specify there is 30 fps video (`fixedSourceRate`=30) as well as a smooth
 * animation on the same surface which looks good when drawing within a frame rate range such as
 * [`desiredMinRate`, `desiredMaxRate`] = [60,120].
 *
 * \param changeFrameRateStrategy Whether display refresh rate transitions caused by this surface
 * should be seamless. A seamless transition is one that doesn't have any visual interruptions, such
 * as a black screen for a second or two.
 */
void ASurfaceTransaction_setFrameRateParams(
        ASurfaceTransaction* _Nonnull transaction, ASurfaceControl* _Nonnull surface_control,
        float desiredMinRate, float desiredMaxRate, float fixedSourceRate,
        ANativeWindow_ChangeFrameRateStrategy changeFrameRateStrategy) __INTRODUCED_IN(36);

/**
 * Clears the frame rate which is set for \a surface_control.
 *
+4 −0
Original line number Diff line number Diff line
@@ -871,6 +871,10 @@ cc_library {
        symbol_file: "libbinder_rpc_unstable.map.txt",
    },

    header_abi_checker: {
        enabled: false,
    },

    // This library is intentionally limited to these targets, and it will be removed later.
    // Do not expand the visibility.
    visibility: [
+5 −1
Original line number Diff line number Diff line
@@ -37,8 +37,12 @@ enum class ARpcSession_FileDescriptorTransportMode {
// Set `cid` to VMADDR_CID_LOCAL to only bind to the local vsock interface.
// Returns an opaque handle to the running server instance, or null if the server
// could not be started.
// Set |port| to VMADDR_PORT_ANY to pick an available ephemeral port.
// |assignedPort| will be set to the assigned port number if it is not null.
// This will be the provided |port|, or the chosen available ephemeral port when
// |port| is VMADDR_PORT_ANY.
[[nodiscard]] ARpcServer* ARpcServer_newVsock(AIBinder* service, unsigned int cid,
                                              unsigned int port);
                                              unsigned int port, unsigned int* assignedPort);

// Starts a Unix domain RPC server with an open raw socket file descriptor
// and a given root IBinder object.
Loading