diff --git a/media/libmedia/MediaPlayer2Manager.h b/media/libmedia/MediaPlayer2Manager.h
index 8f0c491..d3ee044 100644
--- a/media/libmedia/MediaPlayer2Manager.h
+++ b/media/libmedia/MediaPlayer2Manager.h
@@ -35,6 +35,7 @@
 
 namespace android {
 
+struct ANativeWindowWrapper;
 struct AudioPlaybackRate;
 class AudioTrack;
 struct AVSyncSettings;
@@ -244,7 +245,7 @@
         // MediaPlayer2Engine interface
         virtual void            disconnect();
         virtual status_t        setVideoSurfaceTexture(
-                                        const sp<IGraphicBufferProducer>& bufferProducer);
+                const sp<ANativeWindowWrapper>& nww) override;
         virtual status_t        setBufferingSettings(const BufferingSettings& buffering) override;
         virtual status_t        getBufferingSettings(
                                         BufferingSettings* buffering /* nonnull */) override;
@@ -286,7 +287,7 @@
                                         const sp<media::VolumeShaper::Operation>& operation) override;
         virtual sp<media::VolumeShaper::State> getVolumeShaperState(int id) override;
 
-        sp<MediaPlayer2Base>     createPlayer(player2_type playerType);
+        sp<MediaPlayer2Base>    createPlayer(player2_type playerType);
 
         virtual status_t        setDataSource(
                         const sp<MediaHTTPService> &httpService,
@@ -299,7 +300,7 @@
         virtual status_t        setDataSource(const sp<IDataSource> &source);
 
 
-        sp<MediaPlayer2Base>     setDataSource_pre(player2_type playerType);
+        sp<MediaPlayer2Base>    setDataSource_pre(player2_type playerType);
         status_t                setDataSource_post(const sp<MediaPlayer2Base>& p,
                                                    status_t status);
 
@@ -375,8 +376,7 @@
                     audio_session_t              mAudioSessionId;
                     audio_attributes_t *         mAudioAttributes;
                     uid_t                        mUid;
-                    sp<ANativeWindow>            mConnectedWindow;
-                    sp<IBinder>                  mConnectedWindowBinder;
+                    sp<ANativeWindowWrapper>     mConnectedWindow;
                     struct sockaddr_in           mRetransmitEndpoint;
                     bool                         mRetransmitEndpointValid;
                     sp<Client>                   mNextClient;
