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

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

Snap for 5611873 from 787f9170 to qt-c2f2-release

Change-Id: Ieee370caff60866985efcbbbcb0f2b6d1d130beb
parents d8db0afb 787f9170
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -127,3 +127,5 @@ namespace.sphal.links = platform
# namespace.sphal.link.platform.shared_libs += %SANITIZER_RUNTIME_LIBRARIES%
namespace.sphal.link.platform.shared_libs = libEGL.so:libGLESv1_CM.so:libGLESv2.so:libGLESv3.so:libRS.so:libandroid_net.so:libc.so:libcgrouprc.so:libclang_rt.asan-aarch64-android.so:libclang_rt.asan-arm-android.so:libclang_rt.hwasan-aarch64-android.so:libclang_rt.asan-i686-android.so:libclang_rt.asan-x86_64-android.so:libdl.so:libft2.so:liblog.so:libm.so:libmediandk.so:libnativewindow.so:libneuralnetworks.so:libsync.so:libvndksupport.so:libvulkan.so

# Add a link for libz.so which is llndk on devices where VNDK is not enforced.
namespace.sphal.link.platform.shared_libs += libz.so
+12 −3
Original line number Diff line number Diff line
@@ -73,6 +73,14 @@ public:
                .withFields({C2F(mBitrate, value).inRange(1, 21000000)})
                .withSetter(Setter<decltype(*mBitrate)>::NonStrictValueWithNoDeps)
                .build());
        addParameter(
                DefineParam(mComplexity, C2_PARAMKEY_COMPLEXITY)
                .withDefault(new C2StreamComplexityTuning::output(0u,
                    FLAC_COMPRESSION_LEVEL_DEFAULT))
                .withFields({C2F(mComplexity, value).inRange(
                    FLAC_COMPRESSION_LEVEL_MIN, FLAC_COMPRESSION_LEVEL_MAX)})
                .withSetter(Setter<decltype(*mComplexity)>::NonStrictValueWithNoDeps)
                .build());
        addParameter(
                DefineParam(mInputMaxBufSize, C2_PARAMKEY_INPUT_MAX_BUFFER_SIZE)
                .withConstValue(new C2StreamMaxBufferSizeInfo::input(0u, 4608))
@@ -93,12 +101,14 @@ public:
    uint32_t getSampleRate() const { return mSampleRate->value; }
    uint32_t getChannelCount() const { return mChannelCount->value; }
    uint32_t getBitrate() const { return mBitrate->value; }
    uint32_t getComplexity() const { return mComplexity->value; }
    int32_t getPcmEncodingInfo() const { return mPcmEncodingInfo->value; }

private:
    std::shared_ptr<C2StreamSampleRateInfo::input> mSampleRate;
    std::shared_ptr<C2StreamChannelCountInfo::input> mChannelCount;
    std::shared_ptr<C2StreamBitrateInfo::output> mBitrate;
    std::shared_ptr<C2StreamComplexityTuning::output> mComplexity;
    std::shared_ptr<C2StreamMaxBufferSizeInfo::input> mInputMaxBufSize;
    std::shared_ptr<C2StreamPcmEncodingInfo::input> mPcmEncodingInfo;
};
@@ -127,7 +137,6 @@ c2_status_t C2SoftFlacEnc::onInit() {

    mSignalledError = false;
    mSignalledOutputEos = false;
    mCompressionLevel = FLAC_COMPRESSION_LEVEL_DEFAULT;
    mIsFirstFrame = true;
    mAnchorTimeStamp = 0ull;
    mProcessedSamples = 0u;
@@ -153,7 +162,6 @@ void C2SoftFlacEnc::onRelease() {
}

void C2SoftFlacEnc::onReset() {
    mCompressionLevel = FLAC_COMPRESSION_LEVEL_DEFAULT;
    (void) onStop();
}

@@ -369,7 +377,8 @@ status_t C2SoftFlacEnc::configureEncoder() {
    ok = ok && FLAC__stream_encoder_set_channels(mFlacStreamEncoder, mIntf->getChannelCount());
    ok = ok && FLAC__stream_encoder_set_sample_rate(mFlacStreamEncoder, mIntf->getSampleRate());
    ok = ok && FLAC__stream_encoder_set_bits_per_sample(mFlacStreamEncoder, bitsPerSample);
    ok = ok && FLAC__stream_encoder_set_compression_level(mFlacStreamEncoder, mCompressionLevel);
    ok = ok && FLAC__stream_encoder_set_compression_level(mFlacStreamEncoder,
                    mIntf->getComplexity());
    ok = ok && FLAC__stream_encoder_set_verify(mFlacStreamEncoder, false);
    if (!ok) {
        ALOGE("unknown error when configuring encoder");
+0 −1
Original line number Diff line number Diff line
@@ -69,7 +69,6 @@ private:
    std::shared_ptr<C2LinearBlock> mOutputBlock;
    bool mSignalledError;
    bool mSignalledOutputEos;
    uint32_t mCompressionLevel;
    uint32_t mBlockSize;
    bool mIsFirstFrame;
    uint64_t mAnchorTimeStamp;
+21 −9
Original line number Diff line number Diff line
@@ -390,27 +390,23 @@ C2SoftHevcEnc::C2SoftHevcEnc(const char* name, c2_node_id_t id,
}

C2SoftHevcEnc::~C2SoftHevcEnc() {
    releaseEncoder();
    onRelease();
}

c2_status_t C2SoftHevcEnc::onInit() {
    return initEncoder();
    return C2_OK;
}

c2_status_t C2SoftHevcEnc::onStop() {
    if (!mStarted) {
    return C2_OK;
}
    return releaseEncoder();
}

void C2SoftHevcEnc::onReset() {
    onStop();
    initEncoder();
    releaseEncoder();
}

void C2SoftHevcEnc::onRelease() {
    onStop();
    releaseEncoder();
}

c2_status_t C2SoftHevcEnc::onFlush_sm() {
@@ -865,6 +861,22 @@ void C2SoftHevcEnc::process(const std::unique_ptr<C2Work>& work,
            return;
        }
    }

    // handle dynamic config parameters
    {
        IntfImpl::Lock lock = mIntf->lock();
        std::shared_ptr<C2StreamBitrateInfo::output> bitrate = mIntf->getBitrate_l();
        lock.unlock();

        if (bitrate != mBitrate) {
            mBitrate = bitrate;
            mEncParams.s_tgt_lyr_prms.as_tgt_params[0].ai4_tgt_bitrate[0] =
                mBitrate->value;
            mEncParams.s_tgt_lyr_prms.as_tgt_params[0].ai4_peak_bitrate[0] =
                mBitrate->value << 1;
        }
    }

    ihevce_inp_buf_t s_encode_ip{};
    ihevce_out_buf_t s_encode_op{};
    uint64_t workIndex = work->input.ordinal.frameIndex.peekull();
+20 −14
Original line number Diff line number Diff line
@@ -50,14 +50,8 @@ public:
}  // namespace

C2OMXNode::C2OMXNode(const std::shared_ptr<Codec2Client::Component> &comp)
    : mComp(comp), mFrameIndex(0), mWidth(0), mHeight(0),
    : mComp(comp), mFrameIndex(0), mWidth(0), mHeight(0), mUsage(0),
      mAdjustTimestampGapUs(0), mFirstInputFrame(true) {
    // TODO: read from intf()
    if (!strncmp(comp->getName().c_str(), "c2.android.", 11)) {
        mUsage = GRALLOC_USAGE_SW_READ_OFTEN;
    } else {
        mUsage = GRALLOC_USAGE_HW_VIDEO_ENCODER;
    }
}

status_t C2OMXNode::freeNode() {
@@ -103,13 +97,25 @@ status_t C2OMXNode::getParameter(OMX_INDEXTYPE index, void *params, size_t size)
}

status_t C2OMXNode::setParameter(OMX_INDEXTYPE index, const void *params, size_t size) {
    if (params == NULL) {
        return BAD_VALUE;
    }
    switch ((uint32_t)index) {
        case OMX_IndexParamMaxFrameDurationForBitrateControl:
            // handle max/fixed frame duration control
    if (index == (OMX_INDEXTYPE)OMX_IndexParamMaxFrameDurationForBitrateControl
            && params != NULL
            && size == sizeof(OMX_PARAM_U32TYPE)) {
            if (size != sizeof(OMX_PARAM_U32TYPE)) {
                return BAD_VALUE;
            }
            // The incoming number is an int32_t contained in OMX_U32.
            mAdjustTimestampGapUs = (int32_t)((OMX_PARAM_U32TYPE*)params)->nU32;
            return OK;

        case OMX_IndexParamConsumerUsageBits:
            if (size != sizeof(OMX_U32)) {
                return BAD_VALUE;
            }
            mUsage = *((OMX_U32 *)params);
            return OK;
    }
    return ERROR_UNSUPPORTED;
}
Loading