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

Commit 67bad0e2 authored by Haofan Wang's avatar Haofan Wang
Browse files

Handle more stream status

Bug: 409870053
Test: CTS
Flag: android.media.tv.flags.media_quality_fw
Change-Id: Iea73ca29edbb574e1307ce8895c03c8307eb2e22
parent 3314cced
Loading
Loading
Loading
Loading
+87 −3
Original line number Original line Diff line number Diff line
@@ -135,17 +135,101 @@ public final class PictureProfile implements Parcelable {
    public static final String STATUS_SDR = "SDR";
    public static final String STATUS_SDR = "SDR";


    /**
    /**
     * HDR status.
     * HDR10 status.
     * @hide
     * @hide
     */
     */
    public static final String STATUS_HDR = "HDR";
    public static final String STATUS_HDR10 = "HDR10";


    /**
    /**
     * Dolby Vision status.
     * DOLBY VISION status.
     * @hide
     */
    public static final String STATUS_DOLBY_VISION = "DOLBY_VISION";

    /**
     * TCH status.
     * @hide
     * @hide
     */
     */
    public static final String STATUS_TCH = "TCH";
    public static final String STATUS_TCH = "TCH";


    /**
     * HLG status.
     * @hide
     */
    public static final String STATUS_HLG = "HLG";

    /**
     * HDR10 PLUS status.
     * @hide
     */
    public static final String STATUS_HDR10_PLUS = "HDR10_PLUS";

    /**
     * HDR VIVID status.
     * @hide
     */
    public static final String STATUS_HDR_VIVID = "HDR_VIVID";

    /**
     * IMAX SDR status.
     * @hide
     */
    public static final String STATUS_IMAX_SDR = " IMAX_SDR";

    /**
     * IMAX HDR10 status.
     * @hide
     */
    public static final String STATUS_IMAX_HDR10 = "IMAX_HDR10";

    /**
     * IMAX HDR10 PLUS status.
     * @hide
     */
    public static final String STATUS_IMAX_HDR10_PLUS = "IMAX_HDR10_PLUS";

    /**
     * FMM SDR status.
     * @hide
     */
    public static final String STATUS_FMM_SDR = "FMM_SDR";

    /**
     * FMM HDR10 status.
     * @hide
     */
    public static final String STATUS_FMM_HDR10 = "FMM_HDR10";

    /**
     * FMM HDR10 PLUS status.
     * @hide
     */
    public static final String STATUS_FMM_HDR10_PLUS = "FMM_HDR10_PLUS";

    /**
     * FMM HLG status.
     * @hide
     */
    public static final String STATUS_FMM_HLG = "FMM_HLG";

    /**
     * FMM DOLBY status.
     * @hide
     */
    public static final String STATUS_FMM_DOLBY = "FMM_DOLBY";

    /**
     * FMM TCH status.
     * @hide
     */
    public static final String STATUS_FMM_TCH = "FMM_TCH";

    /**
     * FMM HDR VIVID status.
     * @hide
     */
    public static final String STATUS_FMM_HDR_VIVID = "FMM_HDR_VIVID";

    /** @hide */
    /** @hide */
    public static final String NAME_STANDARD = "standard";
    public static final String NAME_STANDARD = "standard";
    /** @hide */
    /** @hide */
+37 −6
Original line number Original line Diff line number Diff line
@@ -1828,9 +1828,11 @@ public class MediaQualityService extends SystemService {
                    // get from map if exists
                    // get from map if exists
                    PictureProfile previous = mHandleToPictureProfile.get(profileHandle);
                    PictureProfile previous = mHandleToPictureProfile.get(profileHandle);
                    if (previous == null) {
                    if (previous == null) {
                        Slog.d(TAG, "Previous profile not in the map");
                        // get from DB if not exists
                        // get from DB if not exists
                        previous = mMqDatabaseUtils.getPictureProfile(profileHandle);
                        previous = mMqDatabaseUtils.getPictureProfile(profileHandle);
                        if (previous == null) {
                        if (previous == null) {
                            Slog.d(TAG, "Previous profile not in the database");
                            return;
                            return;
                        }
                        }
                    }
                    }
@@ -1840,16 +1842,17 @@ public class MediaQualityService extends SystemService {
                    if (status != StreamStatus.SDR) {
                    if (status != StreamStatus.SDR) {
                        // TODO: merge SDR handling
                        // TODO: merge SDR handling
                        if (isSameStatus(profileStatus, status)) {
                        if (isSameStatus(profileStatus, status)) {
                            // already same status
                            Slog.d(TAG, "The current status is the same as new status");
                            return;
                            return;
                        }
                        }


                        // to new status
                        // to new status
                        String newStatus = toPictureProfileStatus(status);
                        String newStatus = toPictureProfileStatus(status);
                        if (newStatus.isEmpty()) {
                        if (newStatus.isEmpty()) {
                            // not a supported status
                            Slog.d(TAG, "new status is not a supported status");
                            return;
                            return;
                        }
                        }
                        Slog.d(TAG, "The new status is " + newStatus);
                        String selection = BaseParameters.PARAMETER_TYPE + " = ? AND "
                        String selection = BaseParameters.PARAMETER_TYPE + " = ? AND "
                                + BaseParameters.PARAMETER_PACKAGE + " = ? AND "
                                + BaseParameters.PARAMETER_PACKAGE + " = ? AND "
                                + BaseParameters.PARAMETER_NAME + " = ?";
                                + BaseParameters.PARAMETER_NAME + " = ?";
@@ -1864,7 +1867,7 @@ public class MediaQualityService extends SystemService {
                                        selection,
                                        selection,
                                        selectionArguments);
                                        selectionArguments);
                        if (list.isEmpty()) {
                        if (list.isEmpty()) {
                            // new profile not found
                            Slog.d(TAG, "Picture profile not found for status: " + newStatus);
                            return;
                            return;
                        }
                        }
                        PictureProfile current = list.get(0);
                        PictureProfile current = list.get(0);
@@ -1877,7 +1880,7 @@ public class MediaQualityService extends SystemService {
                    } else {
                    } else {
                        // handle SDR status
                        // handle SDR status
                        if (isSdr(profileStatus)) {
                        if (isSdr(profileStatus)) {
                            // already SDR
                            Slog.d(TAG, "Current status is already SDR");
                            return;
                            return;
                        }
                        }


@@ -1898,7 +1901,7 @@ public class MediaQualityService extends SystemService {
                                        selection,
                                        selection,
                                        selectionArguments);
                                        selectionArguments);
                        if (list.isEmpty()) {
                        if (list.isEmpty()) {
                            // SDR profile not found
                            Slog.d(TAG, "SDR profile not found");
                            return;
                            return;
                        }
                        }
                        PictureProfile current = list.get(0);
                        PictureProfile current = list.get(0);
@@ -1933,9 +1936,37 @@ public class MediaQualityService extends SystemService {
                case StreamStatus.SDR:
                case StreamStatus.SDR:
                    return PictureProfile.STATUS_SDR;
                    return PictureProfile.STATUS_SDR;
                case StreamStatus.HDR10:
                case StreamStatus.HDR10:
                    return PictureProfile.STATUS_HDR;
                    return PictureProfile.STATUS_HDR10;
                case StreamStatus.TCH:
                case StreamStatus.TCH:
                    return PictureProfile.STATUS_TCH;
                    return PictureProfile.STATUS_TCH;
                case StreamStatus.DOLBYVISION:
                    return PictureProfile.STATUS_DOLBY_VISION;
                case StreamStatus.HLG:
                    return PictureProfile.STATUS_HLG;
                case StreamStatus.HDR10PLUS:
                    return PictureProfile.STATUS_HDR10_PLUS;
                case StreamStatus.HDRVIVID:
                    return PictureProfile.STATUS_HDR_VIVID;
                case StreamStatus.IMAXSDR:
                    return PictureProfile.STATUS_IMAX_SDR;
                case StreamStatus.IMAXHDR10:
                    return PictureProfile.STATUS_IMAX_HDR10;
                case StreamStatus.IMAXHDR10PLUS:
                    return PictureProfile.STATUS_IMAX_HDR10_PLUS;
                case StreamStatus.FMMSDR:
                    return PictureProfile.STATUS_FMM_SDR;
                case StreamStatus.FMMHDR10:
                    return PictureProfile.STATUS_FMM_HDR10;
                case StreamStatus.FMMHDR10PLUS:
                    return PictureProfile.STATUS_FMM_HDR10_PLUS;
                case StreamStatus.FMMHLG:
                    return PictureProfile.STATUS_FMM_HLG;
                case StreamStatus.FMMDOLBY:
                    return PictureProfile.STATUS_FMM_DOLBY;
                case StreamStatus.FMMTCH:
                    return PictureProfile.STATUS_FMM_TCH;
                case StreamStatus.FMMHDRVIVID:
                    return PictureProfile.STATUS_FMM_HDR_VIVID;
                default:
                default:
                    return "";
                    return "";
            }
            }