Fix SHUTDOWN after SETUP and before PLAY in wifi display.

Change-Id: Ieb8ce1ac3130254839975a3677162b64156735bc
related-to-bug: 8499893
diff --git a/media/libstagefright/wifi-display/source/WifiDisplaySource.cpp b/media/libstagefright/wifi-display/source/WifiDisplaySource.cpp
index 792a9c5..4a49811 100644
--- a/media/libstagefright/wifi-display/source/WifiDisplaySource.cpp
+++ b/media/libstagefright/wifi-display/source/WifiDisplaySource.cpp
@@ -273,7 +273,8 @@
                         if (!strcasecmp(val, "pause") && mState == PLAYING) {
                             mState = PLAYING_TO_PAUSED;
                             sendTrigger(mClientSessionID, TRIGGER_PAUSE);
-                        } else if (!strcasecmp(val, "play") && mState == PAUSED) {
+                        } else if (!strcasecmp(val, "play")
+                                    && mState == PAUSED) {
                             mState = PAUSED_TO_PLAYING;
                             sendTrigger(mClientSessionID, TRIGGER_PLAY);
                         }
@@ -422,7 +423,8 @@
                                     NULL /* interlaced */));
 
                         mClient->onDisplayConnected(
-                                mClientInfo.mPlaybackSession->getSurfaceTexture(),
+                                mClientInfo.mPlaybackSession
+                                    ->getSurfaceTexture(),
                                 width,
                                 height,
                                 mUsingHDCP
@@ -1351,6 +1353,15 @@
         return ERROR_MALFORMED;
     }
 
+    if (mState != AWAITING_CLIENT_PLAY) {
+        ALOGW("Received PLAY request but we're in state %d", mState);
+
+        sendErrorResponse(
+                sessionID, "455 Method Not Valid in This State", cseq);
+
+        return INVALID_OPERATION;
+    }
+
     ALOGI("Received PLAY request.");
     if (mPlaybackSessionEstablished) {
         finishPlay();
@@ -1673,7 +1684,10 @@
 status_t WifiDisplaySource::makeHDCP() {
     sp<IServiceManager> sm = defaultServiceManager();
     sp<IBinder> binder = sm->getService(String16("media.player"));
-    sp<IMediaPlayerService> service = interface_cast<IMediaPlayerService>(binder);
+
+    sp<IMediaPlayerService> service =
+        interface_cast<IMediaPlayerService>(binder);
+
     CHECK(service != NULL);
 
     mHDCP = service->makeHDCP(true /* createEncryptionModule */);