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

Commit b8d0f0c8 authored by Songyue Han's avatar Songyue Han Committed by Gerrit Code Review
Browse files

Merge "CodecCapabilities: Restrict bitRate from int to int32_t." into main

parents 02aa5103 ad936af3
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@

namespace android {

const Range<int>& AudioCapabilities::getBitrateRange() const {
const Range<int32_t>& AudioCapabilities::getBitrateRange() const {
    return mBitrateRange;
}

@@ -86,7 +86,7 @@ void AudioCapabilities::init(std::string mediaType, std::vector<ProfileLevel> pr
}

void AudioCapabilities::initWithPlatformLimits() {
    mBitrateRange = Range<int>(0, INT_MAX);
    mBitrateRange = Range<int>(0, INT32_MAX);
    mInputChannelRanges.push_back(Range<int>(1, MAX_INPUT_CHANNEL_COUNT));

    const int minSampleRate = base::GetIntProperty("ro.mediacodec.min_sample_rate", 7350);
@@ -281,7 +281,7 @@ void AudioCapabilities::applyLevelLimits() {

void AudioCapabilities::applyLimits(
        const std::vector<Range<int>> &inputChannels,
        const std::optional<Range<int>> &bitRates) {
        const std::optional<Range<int32_t>> &bitRates) {
    // clamp & make a local copy
    std::vector<Range<int>> inputChannelsCopy(inputChannels.size());
    for (int i = 0; i < inputChannels.size(); i++) {
@@ -302,7 +302,7 @@ void AudioCapabilities::applyLimits(
void AudioCapabilities::parseFromInfo(const sp<AMessage> &format) {
    int maxInputChannels = MAX_INPUT_CHANNEL_COUNT;
    std::vector<Range<int>> channels = { Range<int>(1, maxInputChannels) };
    std::optional<Range<int>> bitRates = POSITIVE_INTEGERS;
    std::optional<Range<int32_t>> bitRates = POSITIVE_INT32;

    AString rateAString;
    if (format->findString("sample-rate-ranges", &rateAString)) {
@@ -349,7 +349,7 @@ void AudioCapabilities::parseFromInfo(const sp<AMessage> &format) {
    }

    if (format->findString("bitrate-range", &valueStr)) {
        std::optional<Range<int>> parsedBitrate = ParseIntRange(valueStr.c_str());
        std::optional<Range<int32_t>> parsedBitrate = ParseIntRange(valueStr.c_str());
        if (parsedBitrate) {
            bitRates = bitRates.value().intersect(parsedBitrate.value());
        }
+1 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@

namespace android {

bool CodecCapabilities::SupportsBitrate(Range<int> bitrateRange,
bool CodecCapabilities::SupportsBitrate(Range<int32_t> bitrateRange,
        const sp<AMessage> &format) {
    // consider max bitrate over average bitrate for support
    int32_t maxBitrate = 0;
+3 −3
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ struct AudioCapabilities {
    /**
     * Returns the range of supported bitrates in bits/second.
     */
    const Range<int>& getBitrateRange() const;
    const Range<int32_t>& getBitrateRange() const;

    /**
     * Returns the array of supported sample rates if the codec
@@ -110,7 +110,7 @@ private:
    std::string mMediaType;
    std::vector<ProfileLevel> mProfileLevels;

    Range<int> mBitrateRange;
    Range<int32_t> mBitrateRange;

    std::vector<int> mSampleRates;
    std::vector<Range<int>> mSampleRateRanges;
@@ -127,7 +127,7 @@ private:
    void limitSampleRates(std::vector<Range<int>> rateRanges);
    void applyLevelLimits();
    void applyLimits(const std::vector<Range<int>> &inputChannels,
            const std::optional<Range<int>> &bitRates);
            const std::optional<Range<int32_t>> &bitRates);
    void parseFromInfo(const sp<AMessage> &format);

    friend struct CodecCapabilities;
+1 −1
Original line number Diff line number Diff line
@@ -34,7 +34,7 @@ namespace android {

struct CodecCapabilities {

    static bool SupportsBitrate(Range<int> bitrateRange,
    static bool SupportsBitrate(Range<int32_t> bitrateRange,
            const sp<AMessage> &format);

    /**
+1 −1
Original line number Diff line number Diff line
@@ -118,7 +118,7 @@ private:
    T upper_;
};

static const Range<int> POSITIVE_INTEGERS = Range<int>(1, INT_MAX);
static const Range<int32_t> POSITIVE_INT32 = Range<int32_t>(1, INT32_MAX);

// found stuff that is not supported by framework (=> this should not happen)
constexpr int ERROR_CAPABILITIES_UNRECOGNIZED   = (1 << 0);
Loading