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

Commit 3c548fc4 authored by Sungtak Lee's avatar Sungtak Lee Committed by Gerrit Code Review
Browse files

Merge "media.c2 aidl: do not throw status, return instead" into main

parents da9b02c5 5e517c39
Loading
Loading
Loading
Loading
+13 −2
Original line number Diff line number Diff line
@@ -37,12 +37,23 @@ interface IConfigurable {
  android.hardware.media.c2.IConfigurable.ConfigResult config(in android.hardware.media.c2.Params inParams, in boolean mayBlock);
  int getId();
  String getName();
  android.hardware.media.c2.Params query(in int[] indices, in boolean mayBlock);
  android.hardware.media.c2.IConfigurable.QueryResult query(in int[] indices, in boolean mayBlock);
  android.hardware.media.c2.ParamDescriptor[] querySupportedParams(in int start, in int count);
  android.hardware.media.c2.FieldSupportedValuesQueryResult[] querySupportedValues(in android.hardware.media.c2.FieldSupportedValuesQuery[] inFields, in boolean mayBlock);
  android.hardware.media.c2.IConfigurable.QuerySupportedValuesResult querySupportedValues(in android.hardware.media.c2.FieldSupportedValuesQuery[] inFields, in boolean mayBlock);
  @VintfStability
  parcelable ConfigResult {
    android.hardware.media.c2.Params params;
    android.hardware.media.c2.SettingResult[] failures;
    android.hardware.media.c2.Status status;
  }
  @VintfStability
  parcelable QueryResult {
    android.hardware.media.c2.Params params;
    android.hardware.media.c2.Status status;
  }
  @VintfStability
  parcelable QuerySupportedValuesResult {
    android.hardware.media.c2.FieldSupportedValuesQueryResult[] values;
    android.hardware.media.c2.Status status;
  }
}
+48 −10
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.hardware.media.c2.FieldSupportedValuesQueryResult;
import android.hardware.media.c2.ParamDescriptor;
import android.hardware.media.c2.Params;
import android.hardware.media.c2.SettingResult;
import android.hardware.media.c2.Status;

/**
 * Generic configuration interface presented by all configurable Codec2 objects.
@@ -34,12 +35,42 @@ interface IConfigurable {
     * Return parcelable for config() interface.
     *
     * This includes the successful config settings along with the failure reasons of
     * the specified setting.
     * the specified setting. @p status is for the compatibility with HIDL interface.
     * (The value is defined in Status.aidl, and possible values are enumerated
     * in config() interface definition)
     */
    @VintfStability
    parcelable ConfigResult {
        Params params;
        SettingResult[] failures;
        Status status;
    }

    /**
     * Return parcelable for query() interface.
     *
     * @p params is the parameter descripion for queried configuration indices.
     * @p status is for the compatibility with HIDL interface. (The value is defined in
     * Status.aidl, and possible values are enumerated in query() interface definition)
     */
    @VintfStability
    parcelable QueryResult {
        Params params;
        Status status;
    }

    /**
     * Return parcelable for querySupportedValues() interface.
     *
     * @p values is the value descripion for queried configuration fields.
     * @p status is for the compatibility with HIDL interface. (The value is defined in
     * Status.aidl, and possible values are enumerated in querySupportedValues()
     * interface definition)
     */
    @VintfStability
    parcelable QuerySupportedValuesResult {
        FieldSupportedValuesQueryResult[] values;
        Status status;
    }

    /**
@@ -82,7 +113,8 @@ interface IConfigurable {
     * @param mayBlock Whether this call may block or not.
     * @return result of config. Params in the result should be in same order
     *     with @p inParams.
     * @throws ServiceSpecificException with one of the following values:
     *
     *     Returned @p status will be one of the following.
     *   - `Status::NO_MEMORY` - Some supported parameters could not be updated
     *                   successfully because they contained unsupported values.
     *                   These are returned in @p failures.
@@ -146,17 +178,22 @@ interface IConfigurable {
     *
     * @param indices List of C2Param structure indices to query.
     * @param mayBlock Whether this call may block or not.
     * @return Flattened representation of std::vector<C2Param> object.
     *     Unsupported settings are skipped in the results. The order in @p indices
     *     still be preserved except skipped settings.
     * @throws ServiceSpecificException with one of the following values:
     * @return @p params is the flattened representation of std::vector<C2Param> object.
     *     Technically unsupported settings can be either skipped or invalidated.
     *     (Invalidated params will be skipped during unflattening to make these identical.)
     *     In the future we will want these to be invalidated to make it easier
     *     for the framework code.
     *
     *     The order in @p indices still be preserved except skipped settings.
     *
     *     Returned @p status will be one of the following.
     *   - `Status::NO_MEMORY` - Could not allocate memory for a supported parameter.
     *   - `Status::BLOCKING`  - Querying some parameters requires blocking, but
     *                   @p mayBlock is false.
     *   - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner.
     *   - `Status::CORRUPTED` - Some unknown error occurred.
     */
    Params query(in int[] indices, in boolean mayBlock);
    QueryResult query(in int[] indices, in boolean mayBlock);

    /**
     * Returns a list of supported parameters within a selected range of C2Param
@@ -197,9 +234,10 @@ interface IConfigurable {
     *
     * @param inFields List of field queries.
     * @param mayBlock Whether this call may block or not.
     * @return List of supported values and results for the
     * @return @p values is the list of supported values and results for the
     *     supplied queries.
     * @throws ServiceSpecificException with one of the following values:
     *
     *     Returned @p status will be one of the following.
     *   - `Status::BLOCKING`  - Querying some parameters requires blocking, but
     *                   @p mayBlock is false.
     *   - `Status::NO_MEMORY` - Not enough memory to complete this method.
@@ -208,6 +246,6 @@ interface IConfigurable {
     *   - `Status::TIMED_OUT` - The operation cannot be finished in a timely manner.
     *   - `Status::CORRUPTED` - Some unknown error occurred.
     */
    FieldSupportedValuesQueryResult[] querySupportedValues(
    QuerySupportedValuesResult querySupportedValues(
            in FieldSupportedValuesQuery[] inFields, in boolean mayBlock);
}