From 820a509687599edb8ff1a7577de8b9295f416263 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Mon, 8 Aug 2011 19:14:03 -0700 Subject: [PATCH] return correct value from query after connecting a surface the first time a surface was connected, the values returned by query NATIVE_WINDOW_DEFAULT_{WIDTH|HEIGHT} and NATIVE_WINDOW_TRANSFORM_HINT were wrong until a call to queueBuffer was performed. Bug: 5137366, 5121607 Change-Id: I7ac6b5b0daa876638f6bed7c20f286a6e6d984f6 --- include/media/stagefright/SurfaceMediaSource.h | 3 ++- media/libstagefright/SurfaceMediaSource.cpp | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/include/media/stagefright/SurfaceMediaSource.h b/include/media/stagefright/SurfaceMediaSource.h index fab258c227..1affb8adbd 100644 --- a/include/media/stagefright/SurfaceMediaSource.h +++ b/include/media/stagefright/SurfaceMediaSource.h @@ -133,7 +133,8 @@ public: // // This method will fail if the connect was previously called on the // SurfaceMediaSource and no corresponding disconnect call was made. - virtual status_t connect(int api); + virtual status_t connect(int api, + uint32_t* outWidth, uint32_t* outHeight, uint32_t* outTransform); // disconnect attempts to disconnect a client API from the SurfaceMediaSource. // Calling this method will cause any subsequent calls to other diff --git a/media/libstagefright/SurfaceMediaSource.cpp b/media/libstagefright/SurfaceMediaSource.cpp index 3d8c56a159..ddfd9ff2d9 100644 --- a/media/libstagefright/SurfaceMediaSource.cpp +++ b/media/libstagefright/SurfaceMediaSource.cpp @@ -371,7 +371,8 @@ status_t SurfaceMediaSource::setSynchronousMode(bool enabled) { return err; } -status_t SurfaceMediaSource::connect(int api) { +status_t SurfaceMediaSource::connect(int api, + uint32_t* outWidth, uint32_t* outHeight, uint32_t* outTransform) { LOGV("SurfaceMediaSource::connect"); Mutex::Autolock lock(mMutex); status_t err = NO_ERROR; @@ -384,6 +385,9 @@ status_t SurfaceMediaSource::connect(int api) { err = -EINVAL; } else { mConnectedApi = api; + *outWidth = mDefaultWidth; + *outHeight = mDefaultHeight; + *outTransform = 0; } break; default: -- 2.11.0