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

Commit 63e9f73c authored by Lajos Molnar's avatar Lajos Molnar Committed by Android Git Automerger
Browse files

am f8af99b7: am 0662f7b6: Merge "stagefright: synchronously change...

am f8af99b7: am 0662f7b6: Merge "stagefright: synchronously change nativewindow crop" into jb-mr2-dev

* commit 'f8af99b7':
  stagefright: synchronously change nativewindow crop
parents fe9a901a f8af99b7
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -278,7 +278,7 @@ private:
    void deferMessage(const sp<AMessage> &msg);
    void processDeferredMessages();

    void sendFormatChange();
    void sendFormatChange(const sp<AMessage> &reply);

    void signalError(
            OMX_ERRORTYPE error = OMX_ErrorUndefined,
+18 −13
Original line number Diff line number Diff line
@@ -2254,7 +2254,7 @@ void ACodec::processDeferredMessages() {
    }
}

void ACodec::sendFormatChange() {
void ACodec::sendFormatChange(const sp<AMessage> &reply) {
    sp<AMessage> notify = mNotify->dup();
    notify->setInt32("what", kWhatOutputFormatChanged);

@@ -2319,14 +2319,12 @@ void ACodec::sendFormatChange() {
                        rect.nTop + rect.nHeight - 1);

                if (mNativeWindow != NULL) {
                    android_native_rect_t crop;
                    crop.left = rect.nLeft;
                    crop.top = rect.nTop;
                    crop.right = rect.nLeft + rect.nWidth;
                    crop.bottom = rect.nTop + rect.nHeight;

                    CHECK_EQ(0, native_window_set_crop(
                                mNativeWindow.get(), &crop));
                    reply->setRect(
                            "crop",
                            rect.nLeft,
                            rect.nTop,
                            rect.nLeft + rect.nWidth,
                            rect.nTop + rect.nHeight);
                }
            }
            break;
@@ -3090,8 +3088,11 @@ bool ACodec::BaseState::onOMXFillBufferDone(
                break;
            }

            sp<AMessage> reply =
                new AMessage(kWhatOutputBufferDrained, mCodec->id());

            if (!mCodec->mSentFormat) {
                mCodec->sendFormatChange();
                mCodec->sendFormatChange(reply);
            }

            if (mCodec->mUseMetadataOnEncoderOutput) {
@@ -3122,9 +3123,6 @@ bool ACodec::BaseState::onOMXFillBufferDone(
            notify->setBuffer("buffer", info->mData);
            notify->setInt32("flags", flags);

            sp<AMessage> reply =
                new AMessage(kWhatOutputBufferDrained, mCodec->id());

            reply->setPointer("buffer-id", info->mBufferID);

            notify->setMessage("reply", reply);
@@ -3168,6 +3166,13 @@ void ACodec::BaseState::onOutputBufferDrained(const sp<AMessage> &msg) {
        mCodec->findBufferByID(kPortIndexOutput, bufferID, &index);
    CHECK_EQ((int)info->mStatus, (int)BufferInfo::OWNED_BY_DOWNSTREAM);

    android_native_rect_t crop;
    if (msg->findRect("crop",
            &crop.left, &crop.top, &crop.right, &crop.bottom)) {
        CHECK_EQ(0, native_window_set_crop(
                mCodec->mNativeWindow.get(), &crop));
    }

    int32_t render;
    if (mCodec->mNativeWindow != NULL
            && msg->findInt32("render", &render) && render != 0