Fixed the timestamp mismatching issue for 2 GTS cases. am: 9696c226d8 am: 1e083c95d5
am: f65456900e

Change-Id: Ic15054f8edfa0d99b6e42650fa44c9dd2000d75b
diff --git a/videodecoder/VideoDecoderAVC.cpp b/videodecoder/VideoDecoderAVC.cpp
index 283442e..f0e047e 100644
--- a/videodecoder/VideoDecoderAVC.cpp
+++ b/videodecoder/VideoDecoderAVC.cpp
@@ -28,7 +28,8 @@
 VideoDecoderAVC::VideoDecoderAVC(const char *mimeType)
     : VideoDecoderBase(mimeType, VBP_H264),
       mToggleDPB(0),
-      mErrorConcealment(false){
+      mErrorConcealment(false),
+      mAdaptive(false){
 
     invalidateDPB(0);
     invalidateDPB(1);
@@ -681,7 +682,7 @@
     //Use high profile for all kinds of H.264 profiles (baseline, main and high) except for constrained baseline
     VAProfile vaProfile = VAProfileH264High;
 
-    if (mConfigBuffer.flag & WANT_ADAPTIVE_PLAYBACK) {
+    if ((mConfigBuffer.flag & WANT_ADAPTIVE_PLAYBACK) || mAdaptive) {
         // When Adaptive playback is enabled, turn off low delay mode.
         // Otherwise there may be a 240ms stuttering if the output mode is changed from LowDelay to Delay.
         enableLowDelayMode(false);
@@ -741,6 +742,7 @@
         if (VideoDecoderBase::alignMB(mVideoFormatInfo.width) != width ||
             VideoDecoderBase::alignMB(mVideoFormatInfo.height) != height) {
             mSizeChanged = true;
+            mAdaptive = true;
             ITRACE("Video size is changed.");
         }
         mVideoFormatInfo.width = width;
diff --git a/videodecoder/VideoDecoderAVC.h b/videodecoder/VideoDecoderAVC.h
index 6129703..19135af 100755
--- a/videodecoder/VideoDecoderAVC.h
+++ b/videodecoder/VideoDecoderAVC.h
@@ -77,6 +77,7 @@
     uint32_t mLastPictureFlags;
     VideoExtensionBuffer mExtensionBuffer;
     PackedFrameData mPackedFrame;
+    bool mAdaptive;
 };