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

Commit 50dabc5f authored by Andreas Huber's avatar Andreas Huber Committed by Android (Google) Code Review
Browse files

Merge "Set crop params to ANative Window during Initialization."

parents ff1cd56a db62a245
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -319,6 +319,8 @@ private:
    void initOutputFormat(const sp<MetaData> &inputFormat);
    status_t initNativeWindow();

    void initNativeWindowCrop();

    void dumpPortStatus(OMX_U32 portIndex);

    status_t configureCodec(const sp<MetaData> &meta);
+22 −16
Original line number Diff line number Diff line
@@ -2351,22 +2351,6 @@ void OMXCodec::onEvent(OMX_EVENTTYPE event, OMX_U32 data1, OMX_U32 data2) {
                    formatHasNotablyChanged(oldOutputFormat, mOutputFormat)) {
                    mOutputPortSettingsHaveChanged = true;

                    if (mNativeWindow != NULL) {
                        int32_t left, top, right, bottom;
                        CHECK(mOutputFormat->findRect(
                                    kKeyCropRect,
                                    &left, &top, &right, &bottom));

                        android_native_rect_t crop;
                        crop.left = left;
                        crop.top = top;
                        crop.right = right + 1;
                        crop.bottom = bottom + 1;

                        // We'll ignore any errors here, if the surface is
                        // already invalid, we'll know soon enough.
                        native_window_set_crop(mNativeWindow.get(), &crop);
                    }
                } else if (data2 == OMX_IndexConfigCommonScale) {
                    OMX_CONFIG_SCALEFACTORTYPE scale;
                    InitOMXParams(&scale);
@@ -4183,6 +4167,24 @@ status_t OMXCodec::initNativeWindow() {
    return OK;
}

void OMXCodec::initNativeWindowCrop() {
    int32_t left, top, right, bottom;

    CHECK(mOutputFormat->findRect(
                        kKeyCropRect,
                        &left, &top, &right, &bottom));

    android_native_rect_t crop;
    crop.left = left;
    crop.top = top;
    crop.right = right + 1;
    crop.bottom = bottom + 1;

    // We'll ignore any errors here, if the surface is
    // already invalid, we'll know soon enough.
    native_window_set_crop(mNativeWindow.get(), &crop);
}

void OMXCodec::initOutputFormat(const sp<MetaData> &inputFormat) {
    mOutputFormat = new MetaData;
    mOutputFormat->setCString(kKeyDecoderComponent, mComponentName);
@@ -4366,6 +4368,10 @@ void OMXCodec::initOutputFormat(const sp<MetaData> &inputFormat) {
                            video_def->nFrameWidth - 1,
                            video_def->nFrameHeight - 1);
                }

                if (mNativeWindow != NULL) {
                     initNativeWindowCrop();
                }
            }
            break;
        }