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

Commit a54be987 authored by Lajos Molnar's avatar Lajos Molnar
Browse files

stagefright: ACodec: support reconfiguring into ByteBuffer mode

Bug: 117849618
Test: atest android.media.cts.MediaCodecTest#testReconfigureWithoutSurface
Change-Id: I0be606253f93ea604597c9e6038c984c7fec27d3
parent 96b557d7
Loading
Loading
Loading
Loading
+20 −17
Original line number Diff line number Diff line
@@ -1748,10 +1748,10 @@ status_t ACodec::configureCodec(
    }

    int32_t storeMeta;
    if (encoder
            && msg->findInt32("android._input-metadata-buffer-type", &storeMeta)
    if (encoder) {
        IOMX::PortMode mode = IOMX::kPortModePresetByteBuffer;
        if (msg->findInt32("android._input-metadata-buffer-type", &storeMeta)
                && storeMeta != kMetadataBufferTypeInvalid) {
        IOMX::PortMode mode;
            if (storeMeta == kMetadataBufferTypeNativeHandleSource) {
                mode = IOMX::kPortModeDynamicNativeHandle;
            } else if (storeMeta == kMetadataBufferTypeANWBuffer ||
@@ -1760,11 +1760,13 @@ status_t ACodec::configureCodec(
            } else {
                return BAD_VALUE;
            }
        }
        err = setPortMode(kPortIndexInput, mode);
        if (err != OK) {
            return err;
        }

        if (mode != IOMX::kPortModePresetByteBuffer) {
            uint32_t usageBits;
            if (mOMXNode->getParameter(
                    (OMX_INDEXTYPE)OMX_IndexParamConsumerUsageBits,
@@ -1773,6 +1775,7 @@ status_t ACodec::configureCodec(
                        "using-sw-read-often", !!(usageBits & GRALLOC_USAGE_SW_READ_OFTEN));
            }
        }
    }

    int32_t prependSPSPPS = 0;
    if (encoder