OSDN Git Service

Always set geometry in queuebuffer
authorPannag Sanketi <psanketi@google.com>
Thu, 8 Sep 2011 21:15:00 +0000 (14:15 -0700)
committerPannag Sanketi <psanketi@google.com>
Thu, 8 Sep 2011 21:16:55 +0000 (14:16 -0700)
The queuebuffer could return early due to timestamp issues. Need to set
the geometry even in that case.

Change-Id: I04d7cd1df3996d640c269285398c0042923ba920

media/libstagefright/SurfaceMediaSource.cpp

index 50dd804..306f1f6 100644 (file)
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-// #define LOG_NDEBUG 0
+//#define LOG_NDEBUG 0
 #define LOG_TAG "SurfaceMediaSource"
 
 #include <media/stagefright/SurfaceMediaSource.h>
@@ -458,6 +458,10 @@ status_t SurfaceMediaSource::queueBuffer(int bufIndex, int64_t timestamp,
     LOGV("queueBuffer");
 
     Mutex::Autolock lock(mMutex);
+    *outWidth = mDefaultWidth;
+    *outHeight = mDefaultHeight;
+    *outTransform = 0;
+
     if (bufIndex < 0 || bufIndex >= mBufferCount) {
         LOGE("queueBuffer: slot index out of range [0, %d]: %d",
                 mBufferCount, bufIndex);
@@ -518,9 +522,6 @@ status_t SurfaceMediaSource::queueBuffer(int bufIndex, int64_t timestamp,
     // buffer is available
     onFrameReceivedLocked();
 
-    *outWidth = mDefaultWidth;
-    *outHeight = mDefaultHeight;
-    *outTransform = 0;
 
     return OK;
 }