Android 谁为wifi显示提供数据?
我试着遵循Android Jelly bean 4.2中的wifi显示代码。在wifi显示中,Android 谁为wifi显示提供数据?,android,android-ndk,wifi-direct,vnc-server,surfaceflinger,Android,Android Ndk,Wifi Direct,Vnc Server,Surfaceflinger,我试着遵循Android Jelly bean 4.2中的wifi显示代码。在wifi显示中,PlaybackSession类将负责获取数据。最后,它将从名为SurfaceMediaSource的类中获取数据,该类继承自MediaSource。数据位于SurfaceMediaSource中的BufferQueue中。但是我找不到谁负责将数据写入缓冲队列。我相信SurfaceFlinger应该可以做到这一点。但是,我找不到任何特定的代码。有人知道它是如何工作的吗?检查onDisplayConnec
PlaybackSession
类将负责获取数据。最后,它将从名为SurfaceMediaSource
的类中获取数据,该类继承自MediaSource
。数据位于SurfaceMediaSource
中的BufferQueue
中。但是我找不到谁负责将数据写入缓冲队列
。我相信SurfaceFlinger
应该可以做到这一点。但是,我找不到任何特定的代码。有人知道它是如何工作的吗?检查onDisplayConnected()
调用wfd.cpp
和com.android.server.display.DisplayDevice
。
两者都将在frameworks/native/libs/gui/SurfaceComposerClient.cpp中的SurfaceComposerClient::setDisplaySurface()
中结束
遗憾的是,我不明白设置DisplayState::eSurfaceChanged
将如何导致显示呈现到SurfaceMediaSource
中的BufferQueue
,它正在使用surfaceflinger中的“虚拟显示”功能。