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

Commit 2a2bfaf1 authored by Harish Mahendrakar's avatar Harish Mahendrakar Committed by Automerger Merge Worker
Browse files

C2 VTS: Add support for C2StreamAudioFrameSizeInfo am: 495d3104 am: 64225684

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/av/+/15834355

Change-Id: Id0613a47ebe6374c9f931f7229823c4d4f39bcac
parents 80c9017b 64225684
Loading
Loading
Loading
Loading
+15 −5
Original line number Diff line number Diff line
@@ -301,13 +301,23 @@ c2_status_t Codec2AudioEncHidlTestBase::getSampleRate(int32_t* nSampleRate) {
c2_status_t Codec2AudioEncHidlTestBase::getSamplesPerFrame(int32_t nChannels,
                                                           int32_t* samplesPerFrame) {
    std::vector<std::unique_ptr<C2Param>> queried;
    c2_status_t c2err = mComponent->query({}, {C2StreamMaxBufferSizeInfo::input::PARAM_TYPE},
    c2_status_t c2err = mComponent->query({}, {C2StreamAudioFrameSizeInfo::input::PARAM_TYPE},
                                          C2_DONT_BLOCK, &queried);
    size_t offset = sizeof(C2Param);
    uint32_t maxInputSize = 0;
    if (c2err == C2_OK && queried.size()) {
        C2Param* param = queried[0].get();
        maxInputSize = *(uint32_t*)((uint8_t*)param + offset);
    }

    if (0 == maxInputSize) {
        c2err = mComponent->query({}, {C2StreamMaxBufferSizeInfo::input::PARAM_TYPE}, C2_DONT_BLOCK,
                                  &queried);
        if (c2err != C2_OK || queried.size() == 0) return c2err;

    size_t offset = sizeof(C2Param);
        C2Param* param = queried[0].get();
    uint32_t maxInputSize = *(uint32_t*)((uint8_t*)param + offset);
        maxInputSize = *(uint32_t*)((uint8_t*)param + offset);
    }
    *samplesPerFrame = std::min((maxInputSize / (nChannels * 2)), kMaxSamplesPerFrame);

    return C2_OK;