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

Commit 011520af authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 12482619 from 039ba37f to 25Q1-release

Change-Id: I38b2b6de7cab172d3b76e16fc3e9dffdc3331da7
parents 00c4d9af 039ba37f
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -480,10 +480,21 @@ typedef enum acamera_metadata_tag {
     * camera device auto-exposure routine for the overridden
     * fields for a given capture will be available in its
     * CaptureResult.</p>
     * <p>When ACAMERA_CONTROL_AE_MODE is AE_MODE_ON and if the device
     * supports manual flash strength control, i.e.,
     * if ACAMERA_FLASH_SINGLE_STRENGTH_MAX_LEVEL and
     * ACAMERA_FLASH_TORCH_STRENGTH_MAX_LEVEL are greater than 1, then
     * the auto-exposure (AE) precapture metering sequence should be
     * triggered to avoid the image being incorrectly exposed at
     * different ACAMERA_FLASH_STRENGTH_LEVEL.</p>
     *
     * @see ACAMERA_CONTROL_AE_MODE
     * @see ACAMERA_CONTROL_MODE
     * @see ACAMERA_FLASH_INFO_AVAILABLE
     * @see ACAMERA_FLASH_MODE
     * @see ACAMERA_FLASH_SINGLE_STRENGTH_MAX_LEVEL
     * @see ACAMERA_FLASH_STRENGTH_LEVEL
     * @see ACAMERA_FLASH_TORCH_STRENGTH_MAX_LEVEL
     * @see ACAMERA_SENSOR_EXPOSURE_TIME
     * @see ACAMERA_SENSOR_FRAME_DURATION
     * @see ACAMERA_SENSOR_SENSITIVITY
@@ -8233,7 +8244,17 @@ typedef enum acamera_metadata_enum_acamera_control_ae_mode {
     * ACAMERA_SENSOR_FRAME_DURATION are ignored. The
     * application has control over the various
     * ACAMERA_FLASH_* fields.</p>
     * <p>If the device supports manual flash strength control, i.e.,
     * if ACAMERA_FLASH_SINGLE_STRENGTH_MAX_LEVEL and
     * ACAMERA_FLASH_TORCH_STRENGTH_MAX_LEVEL are greater than 1, then
     * the auto-exposure (AE) precapture metering sequence should be
     * triggered for the configured flash mode and strength to avoid
     * the image being incorrectly exposed at different
     * ACAMERA_FLASH_STRENGTH_LEVEL.</p>
     *
     * @see ACAMERA_FLASH_SINGLE_STRENGTH_MAX_LEVEL
     * @see ACAMERA_FLASH_STRENGTH_LEVEL
     * @see ACAMERA_FLASH_TORCH_STRENGTH_MAX_LEVEL
     * @see ACAMERA_SENSOR_EXPOSURE_TIME
     * @see ACAMERA_SENSOR_FRAME_DURATION
     * @see ACAMERA_SENSOR_SENSITIVITY
+5 −0
Original line number Diff line number Diff line
@@ -28,6 +28,10 @@ cc_defaults {
        "liblog",
    ],

    static_libs: [
        "libstagefright_metadatautils",
    ],

    // extractors are expected to run on Q(29)
    min_sdk_version: "29",
    apex_available: [
@@ -56,6 +60,7 @@ cc_defaults {
                "libutils",
                "libmediandk_format",
                "libmedia_ndkformatpriv",
                "libstagefright_metadatautils",
            ],
        },
    },
+1 −0
Original line number Diff line number Diff line
@@ -131,6 +131,7 @@ cc_fuzz {
        "libstagefright_id3",
        "libstagefright_esds",
        "libmp4extractor",
        "libstagefright_metadatautils",
    ],

    dictionary: "mp4_extractor_fuzzer.dict",
+1 −1
Original line number Diff line number Diff line
@@ -1787,7 +1787,7 @@ status_t MatroskaExtractor::synthesizeVP9(TrackInfo* trackInfo, size_t index) {
        return ERROR_MALFORMED;
    }

    if (!MakeVP9CodecSpecificData(trackInfo->mMeta, tmpData.get(), frame.len)) {
    if (!MakeVP9CodecSpecificDataFromFirstFrame(trackInfo->mMeta, tmpData.get(), frame.len)) {
        return ERROR_MALFORMED;
    }

+26 −1
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@
#include <media/stagefright/MediaBufferGroup.h>
#include <media/stagefright/MediaDefs.h>
#include <media/stagefright/MetaDataBase.h>
#include <media/stagefright/MetaDataUtils.h>
#include <utils/String8.h>

#include <byteswap.h>
@@ -2596,8 +2597,32 @@ status_t MPEG4Extractor::parseChunk(off64_t *offset, int depth) {
            *offset += chunk_size;
            break;
        }

        case FOURCC("vpcC"):
        {
            if (mLastTrack == NULL) {
                return ERROR_MALFORMED;
            }

            auto buffer = heapbuffer<uint8_t>(chunk_data_size);

            if (buffer.get() == NULL) {
                ALOGE("b/28471206");
                return NO_MEMORY;
            }

            if (mDataSource->readAt(data_offset, buffer.get(), chunk_data_size) < chunk_data_size) {
                return ERROR_IO;
            }

            if (!MakeVP9CodecPrivateFromVpcC(mLastTrack->meta, buffer.get(), chunk_data_size)) {
                ALOGE("Failed to create VP9 CodecPrivate from vpcC.");
                return ERROR_MALFORMED;
            }

            *offset += chunk_size;
            break;
        }

        case FOURCC("av1C"):
        {
            auto buffer = heapbuffer<uint8_t>(chunk_data_size);
Loading