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

Commit 19f23ed3 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "ndk_sync_codec_fuzzer : Resolved Direct Memory Leak Issue"

parents 29beb471 5dd792c8
Loading
Loading
Loading
Loading
+5 −0
Original line number Original line Diff line number Diff line
@@ -46,6 +46,11 @@ class NdkMediaCodecFuzzerBase {
    AMediaCodec* createCodec(bool isEncoder, bool isCodecForClient);
    AMediaCodec* createCodec(bool isEncoder, bool isCodecForClient);
    AMediaFormat* getCodecFormat() { return mFormat; };
    AMediaFormat* getCodecFormat() { return mFormat; };
    void setFdp(FuzzedDataProvider* fdp) { mFdp = fdp; }
    void setFdp(FuzzedDataProvider* fdp) { mFdp = fdp; }
    ~NdkMediaCodecFuzzerBase() {
        if (mFormat) {
            AMediaFormat_delete(mFormat);
        }
    }


  private:
  private:
    AMediaCodec* createAMediaCodecByname(bool isEncoder, bool isCodecForClient);
    AMediaCodec* createAMediaCodecByname(bool isEncoder, bool isCodecForClient);
+1 −5
Original line number Original line Diff line number Diff line
@@ -41,14 +41,13 @@ class NdkSyncCodecFuzzer : public NdkMediaCodecFuzzerBase {


void NdkSyncCodecFuzzer::invokekSyncCodecAPIs(bool isEncoder) {
void NdkSyncCodecFuzzer::invokekSyncCodecAPIs(bool isEncoder) {
    ANativeWindow* nativeWindow = nullptr;
    ANativeWindow* nativeWindow = nullptr;
    AMediaFormat* format = getCodecFormat();
    int32_t numOfFrames = mFdp.ConsumeIntegralInRange<size_t>(kMinIterations, kMaxIterations);
    int32_t numOfFrames = mFdp.ConsumeIntegralInRange<size_t>(kMinIterations, kMaxIterations);
    int32_t count = 0;
    int32_t count = 0;
    while (++count <= numOfFrames) {
    while (++count <= numOfFrames) {
        int32_t ndkcodecAPI = mFdp.ConsumeIntegralInRange<size_t>(kMinAPICase, kMaxNdkCodecAPIs);
        int32_t ndkcodecAPI = mFdp.ConsumeIntegralInRange<size_t>(kMinAPICase, kMaxNdkCodecAPIs);
        switch (ndkcodecAPI) {
        switch (ndkcodecAPI) {
            case 0: {  // configure the codec
            case 0: {  // configure the codec
                AMediaCodec_configure(mCodec, format, nativeWindow, nullptr /* crypto */,
                AMediaCodec_configure(mCodec, getCodecFormat(), nativeWindow, nullptr /* crypto */,
                                      (isEncoder ? AMEDIACODEC_CONFIGURE_FLAG_ENCODE : 0));
                                      (isEncoder ? AMEDIACODEC_CONFIGURE_FLAG_ENCODE : 0));
                break;
                break;
            }
            }
@@ -119,9 +118,6 @@ void NdkSyncCodecFuzzer::invokekSyncCodecAPIs(bool isEncoder) {
    if (nativeWindow) {
    if (nativeWindow) {
        ANativeWindow_release(nativeWindow);
        ANativeWindow_release(nativeWindow);
    }
    }
    if (format) {
        AMediaFormat_delete(format);
    }
}
}


void NdkSyncCodecFuzzer::invokeSyncCodeConfigAPI() {
void NdkSyncCodecFuzzer::invokeSyncCodeConfigAPI() {