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

Commit f29b50a7 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 5626642 from a3c6cfd8 to qt-c2f2-release

Change-Id: Iebbdb62f307f4e2f30e28c8792c40871563618d6
parents 41172e93 a3c6cfd8
Loading
Loading
Loading
Loading
+10 −5
Original line number Diff line number Diff line
@@ -401,20 +401,25 @@ Return<void> DrmPlugin::provideKeyResponse(

        sendExpirationUpdate(sessionId, 100);

        std::vector<KeyStatus> keysStatus;
        KeyStatus keyStatus;
        std::vector<KeyStatus_V1_2> keysStatus;
        KeyStatus_V1_2 keyStatus;

        std::vector<uint8_t> keyId1 = { 0xA, 0xB, 0xC };
        keyStatus.keyId = keyId1;
        keyStatus.type = V1_0::KeyStatusType::USABLE;
        keyStatus.type = V1_2::KeyStatusType::USABLE;
        keysStatus.push_back(keyStatus);

        std::vector<uint8_t> keyId2 = { 0xD, 0xE, 0xF };
        keyStatus.keyId = keyId2;
        keyStatus.type = V1_0::KeyStatusType::EXPIRED;
        keyStatus.type = V1_2::KeyStatusType::EXPIRED;
        keysStatus.push_back(keyStatus);

        sendKeysChange(sessionId, keysStatus, true);
        std::vector<uint8_t> keyId3 = { 0x0, 0x1, 0x2 };
        keyStatus.keyId = keyId3;
        keyStatus.type = V1_2::KeyStatusType::USABLEINFUTURE;
        keysStatus.push_back(keyStatus);

        sendKeysChange_1_2(sessionId, keysStatus, true);

        installSecureStop(sessionId);
    } else {
+10 −8
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ constexpr char COMPONENT_NAME[] = "c2.android.opus.encoder";

}  // namespace

static const int kMaxNumChannelsSupported = 2;

class C2SoftOpusEnc::IntfImpl : public SimpleInterface<void>::BaseParams {
public:
    explicit IntfImpl(const std::shared_ptr<C2ReflectorHelper> &helper)
@@ -71,7 +73,7 @@ public:
        addParameter(
                DefineParam(mChannelCount, C2_PARAMKEY_CHANNEL_COUNT)
                .withDefault(new C2StreamChannelCountInfo::input(0u, 1))
                .withFields({C2F(mChannelCount, value).inRange(1, 8)})
                .withFields({C2F(mChannelCount, value).inRange(1, kMaxNumChannelsSupported)})
                .withSetter((Setter<decltype(*mChannelCount)>::StrictValueWithNoDeps))
                .build());

@@ -128,9 +130,8 @@ c2_status_t C2SoftOpusEnc::onInit() {
}

c2_status_t C2SoftOpusEnc::configureEncoder() {
    unsigned char mono_mapping[256] = {0};
    unsigned char stereo_mapping[256] = {0, 1};
    unsigned char surround_mapping[256] = {0, 1, 255};
    static const unsigned char mono_mapping[256] = {0};
    static const unsigned char stereo_mapping[256] = {0, 1};
    mSampleRate = mIntf->getSampleRate();
    mChannelCount = mIntf->getChannelCount();
    uint32_t bitrate = mIntf->getBitrate();
@@ -140,13 +141,14 @@ c2_status_t C2SoftOpusEnc::configureEncoder() {
        mChannelCount * mNumSamplesPerFrame * sizeof(int16_t);
    int err = C2_OK;

    unsigned char* mapping;
    if (mChannelCount < 2) {
    const unsigned char* mapping;
    if (mChannelCount == 1) {
        mapping = mono_mapping;
    } else if (mChannelCount == 2) {
        mapping = stereo_mapping;
    } else {
        mapping = surround_mapping;
        ALOGE("Number of channels (%d) is not supported", mChannelCount);
        return C2_BAD_VALUE;
    }

    if (mEncoder != nullptr) {
@@ -154,7 +156,7 @@ c2_status_t C2SoftOpusEnc::configureEncoder() {
    }

    mEncoder = opus_multistream_encoder_create(mSampleRate, mChannelCount,
        1, 1, mapping, OPUS_APPLICATION_AUDIO, &err);
        1, mChannelCount - 1, mapping, OPUS_APPLICATION_AUDIO, &err);
    if (err) {
        ALOGE("Could not create libopus encoder. Error code: %i", err);
        return C2_CORRUPTED;
+6 −3
Original line number Diff line number Diff line
@@ -1724,8 +1724,11 @@ void CCodec::onMessageReceived(const sp<AMessage> &msg) {
                            & C2FrameData::FLAG_DISCARD_FRAME) == 0) {

                // copy buffer info to config
                std::vector<std::unique_ptr<C2Param>> updates =
                    std::move(work->worklets.front()->output.configUpdate);
                std::vector<std::unique_ptr<C2Param>> updates;
                for (const std::unique_ptr<C2Param> &param
                        : work->worklets.front()->output.configUpdate) {
                    updates.push_back(C2Param::Copy(*param));
                }
                unsigned stream = 0;
                for (const std::shared_ptr<C2Buffer> &buf : work->worklets.front()->output.buffers) {
                    for (const std::shared_ptr<const C2Info> &info : buf->info()) {
@@ -1739,7 +1742,7 @@ void CCodec::onMessageReceived(const sp<AMessage> &msg) {
                        //      block.width(), block.height());
                        updates.emplace_back(new C2StreamCropRectInfo::output(stream, block.crop()));
                        updates.emplace_back(new C2StreamPictureSizeInfo::output(
                                stream, block.width(), block.height()));
                                stream, block.crop().width, block.crop().height));
                        break; // for now only do the first block
                    }
                    ++stream;
+195 −80

File changed.

Preview size limit exceeded, changes collapsed.

+18 −5
Original line number Diff line number Diff line
@@ -209,7 +209,7 @@ private:

    void feedInputBufferIfAvailable();
    void feedInputBufferIfAvailableInternal();
    status_t queueInputBufferInternal(const sp<MediaCodecBuffer> &buffer);
    status_t queueInputBufferInternal(sp<MediaCodecBuffer> buffer);
    bool handleWork(
            std::unique_ptr<C2Work> work, const sp<AMessage> &outputFormat,
            const C2StreamInitDataInfo::output *initData);
@@ -228,13 +228,26 @@ private:
    QueueSync mQueueSync;
    std::vector<std::unique_ptr<C2Param>> mParamsToBeSet;

    size_t mNumInputSlots;
    size_t mNumOutputSlots;
    size_t mDelay;

    Mutexed<std::unique_ptr<InputBuffers>> mInputBuffers;
    struct Input {
        Input();

        std::unique_ptr<InputBuffers> buffers;
        size_t numSlots;
        FlexBuffersImpl extraBuffers;
        size_t numExtraSlots;
        uint32_t inputDelay;
        uint32_t pipelineDelay;
    };
    Mutexed<Input> mInput;
    struct Output {
        std::unique_ptr<OutputBuffers> buffers;
        size_t numSlots;
        uint32_t outputDelay;
    };
    Mutexed<Output> mOutput;
    Mutexed<std::list<sp<ABuffer>>> mFlushedConfigs;
    Mutexed<std::unique_ptr<OutputBuffers>> mOutputBuffers;

    std::atomic_uint64_t mFrameIndex;
    std::atomic_uint64_t mFirstValidFrameIndex;
Loading