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

Commit b8689b31 authored by Andreas Huber's avatar Andreas Huber
Browse files

Support for "request-sync" parameter in ACodec

Also returns errors to caller instead of asserting...

Change-Id: Id3018655a2b3da4289167fba16af907350a511ae
parent 1b832c3d
Loading
Loading
Loading
Loading
+18 −3
Original line number Original line Diff line number Diff line
@@ -4123,13 +4123,28 @@ status_t ACodec::setParameters(const sp<AMessage> &params) {
    if (params->findInt32("drop-input-frames", &dropInputFrames)) {
    if (params->findInt32("drop-input-frames", &dropInputFrames)) {
        bool suspend = dropInputFrames != 0;
        bool suspend = dropInputFrames != 0;


        CHECK_EQ((status_t)OK,
        status_t err =
            mOMX->setInternalOption(
            mOMX->setInternalOption(
                     mNode,
                     mNode,
                     kPortIndexInput,
                     kPortIndexInput,
                     IOMX::INTERNAL_OPTION_SUSPEND,
                     IOMX::INTERNAL_OPTION_SUSPEND,
                     &suspend,
                     &suspend,
                     sizeof(suspend)));
                     sizeof(suspend));

        if (err != OK) {
            ALOGE("Failed to set parameter 'drop-input-frames' (err %d)", err);
            return err;
        }
    }

    int32_t dummy;
    if (params->findInt32("request-sync", &dummy)) {
        status_t err = requestIDRFrame();

        if (err != OK) {
            ALOGE("Requesting a sync frame failed w/ err %d", err);
            return err;
        }
    }
    }


    return OK;
    return OK;