From 6d339f1f764bbd32e3381dae7bfa7c6c575bb493 Mon Sep 17 00:00:00 2001 From: Lajos Molnar Date: Fri, 17 Apr 2015 16:15:53 -0700 Subject: libmediaplayerservice: fix warnings, make warnings errors, use clang Change-Id: I1b2f6b65c5abbc366068a60b8909104f31b94228 --- media/libmediaplayerservice/Android.mk | 3 +++ media/libmediaplayerservice/Crypto.cpp | 2 +- media/libmediaplayerservice/Drm.cpp | 4 ++-- media/libmediaplayerservice/Drm.h | 4 ++-- media/libmediaplayerservice/MediaPlayerService.cpp | 4 +--- media/libmediaplayerservice/MediaPlayerService.h | 2 +- media/libmediaplayerservice/MediaRecorderClient.cpp | 2 +- media/libmediaplayerservice/MediaRecorderClient.h | 2 +- .../libmediaplayerservice/MetadataRetrieverClient.cpp | 2 +- media/libmediaplayerservice/MetadataRetrieverClient.h | 2 +- media/libmediaplayerservice/RemoteDisplay.h | 2 +- media/libmediaplayerservice/StagefrightRecorder.cpp | 1 - media/libmediaplayerservice/StagefrightRecorder.h | 2 +- media/libmediaplayerservice/VideoFrameScheduler.h | 2 +- media/libmediaplayerservice/nuplayer/Android.mk | 3 +++ media/libmediaplayerservice/nuplayer/GenericSource.cpp | 4 ++-- media/libmediaplayerservice/nuplayer/NuPlayer.cpp | 6 ++---- .../nuplayer/NuPlayerCCDecoder.cpp | 1 + .../nuplayer/NuPlayerRenderer.cpp | 8 ++++---- media/libmediaplayerservice/tests/Android.mk | 3 +++ .../tests/DrmSessionManager_test.cpp | 18 +++++++++--------- media/libstagefright/rtsp/MyHandler.h | 16 ++++++++-------- .../wifi-display/source/WifiDisplaySource.h | 2 +- 23 files changed, 50 insertions(+), 45 deletions(-) (limited to 'media') diff --git a/media/libmediaplayerservice/Android.mk b/media/libmediaplayerservice/Android.mk index 4b31715..2c4e719 100644 --- a/media/libmediaplayerservice/Android.mk +++ b/media/libmediaplayerservice/Android.mk @@ -54,6 +54,9 @@ LOCAL_C_INCLUDES := \ $(TOP)/frameworks/native/include/media/openmax \ $(TOP)/external/tremolo/Tremolo \ +LOCAL_CFLAGS += -Werror -Wall +LOCAL_CLANG := true + LOCAL_MODULE:= libmediaplayerservice LOCAL_32_BIT_ONLY := true diff --git a/media/libmediaplayerservice/Crypto.cpp b/media/libmediaplayerservice/Crypto.cpp index f639193..147d35f 100644 --- a/media/libmediaplayerservice/Crypto.cpp +++ b/media/libmediaplayerservice/Crypto.cpp @@ -89,7 +89,7 @@ void Crypto::findFactoryForScheme(const uint8_t uuid[16]) { // first check cache Vector uuidVector; - uuidVector.appendArray(uuid, sizeof(uuid)); + uuidVector.appendArray(uuid, sizeof(uuid[0]) * 16); ssize_t index = mUUIDToLibraryPathMap.indexOfKey(uuidVector); if (index >= 0) { if (loadLibraryForScheme(mUUIDToLibraryPathMap[index], uuid)) { diff --git a/media/libmediaplayerservice/Drm.cpp b/media/libmediaplayerservice/Drm.cpp index 62cf3e5..8ca8769 100644 --- a/media/libmediaplayerservice/Drm.cpp +++ b/media/libmediaplayerservice/Drm.cpp @@ -209,7 +209,7 @@ void Drm::findFactoryForScheme(const uint8_t uuid[16]) { // first check cache Vector uuidVector; - uuidVector.appendArray(uuid, sizeof(uuid)); + uuidVector.appendArray(uuid, sizeof(uuid[0]) * 16); ssize_t index = mUUIDToLibraryPathMap.indexOfKey(uuidVector); if (index >= 0) { if (loadLibraryForScheme(mUUIDToLibraryPathMap[index], uuid)) { @@ -776,7 +776,7 @@ status_t Drm::signRSA(Vector const &sessionId, return mPlugin->signRSA(sessionId, algorithm, message, wrappedKey, signature); } -void Drm::binderDied(const wp &the_late_who) +void Drm::binderDied(const wp &the_late_who __unused) { mEventLock.lock(); mListener.clear(); diff --git a/media/libmediaplayerservice/Drm.h b/media/libmediaplayerservice/Drm.h index 1591738..c4013b8 100644 --- a/media/libmediaplayerservice/Drm.h +++ b/media/libmediaplayerservice/Drm.h @@ -26,8 +26,8 @@ namespace android { -struct DrmFactory; -struct DrmPlugin; +class DrmFactory; +class DrmPlugin; struct DrmSessionClientInterface; struct Drm : public BnDrm, diff --git a/media/libmediaplayerservice/MediaPlayerService.cpp b/media/libmediaplayerservice/MediaPlayerService.cpp index 8e2e214..87003c5 100644 --- a/media/libmediaplayerservice/MediaPlayerService.cpp +++ b/media/libmediaplayerservice/MediaPlayerService.cpp @@ -413,7 +413,7 @@ status_t MediaPlayerService::AudioOutput::dump(int fd, const Vector& a return NO_ERROR; } -status_t MediaPlayerService::Client::dump(int fd, const Vector& args) const +status_t MediaPlayerService::Client::dump(int fd, const Vector& args) { const size_t SIZE = 256; char buffer[SIZE]; @@ -1461,8 +1461,6 @@ status_t MediaPlayerService::AudioOutput::open( } ALOGV("open(%u, %d, 0x%x, 0x%x, %d, %d 0x%x)", sampleRate, channelCount, channelMask, format, bufferCount, mSessionId, flags); - uint32_t afSampleRate; - size_t afFrameCount; size_t frameCount; // offloading is only supported in callback mode for now. diff --git a/media/libmediaplayerservice/MediaPlayerService.h b/media/libmediaplayerservice/MediaPlayerService.h index 2a95ce1..6ddfe14 100644 --- a/media/libmediaplayerservice/MediaPlayerService.h +++ b/media/libmediaplayerservice/MediaPlayerService.h @@ -304,7 +304,7 @@ private: int ext1, int ext2, const Parcel *obj); pid_t pid() const { return mPid; } - virtual status_t dump(int fd, const Vector& args) const; + virtual status_t dump(int fd, const Vector& args); int getAudioSessionId() { return mAudioSessionId; } diff --git a/media/libmediaplayerservice/MediaRecorderClient.cpp b/media/libmediaplayerservice/MediaRecorderClient.cpp index 4d4de9b..319ebb0 100644 --- a/media/libmediaplayerservice/MediaRecorderClient.cpp +++ b/media/libmediaplayerservice/MediaRecorderClient.cpp @@ -325,7 +325,7 @@ status_t MediaRecorderClient::setClientName(const String16& clientName) { return mRecorder->setClientName(clientName); } -status_t MediaRecorderClient::dump(int fd, const Vector& args) const { +status_t MediaRecorderClient::dump(int fd, const Vector& args) { if (mRecorder != NULL) { return mRecorder->dump(fd, args); } diff --git a/media/libmediaplayerservice/MediaRecorderClient.h b/media/libmediaplayerservice/MediaRecorderClient.h index a444b6c..b45344b 100644 --- a/media/libmediaplayerservice/MediaRecorderClient.h +++ b/media/libmediaplayerservice/MediaRecorderClient.h @@ -54,7 +54,7 @@ public: virtual status_t init(); virtual status_t close(); virtual status_t release(); - virtual status_t dump(int fd, const Vector& args) const; + virtual status_t dump(int fd, const Vector& args); virtual sp querySurfaceMediaSource(); private: diff --git a/media/libmediaplayerservice/MetadataRetrieverClient.cpp b/media/libmediaplayerservice/MetadataRetrieverClient.cpp index 80804a7..6ef4c1f 100644 --- a/media/libmediaplayerservice/MetadataRetrieverClient.cpp +++ b/media/libmediaplayerservice/MetadataRetrieverClient.cpp @@ -57,7 +57,7 @@ MetadataRetrieverClient::~MetadataRetrieverClient() disconnect(); } -status_t MetadataRetrieverClient::dump(int fd, const Vector& /*args*/) const +status_t MetadataRetrieverClient::dump(int fd, const Vector& /*args*/) { const size_t SIZE = 256; char buffer[SIZE]; diff --git a/media/libmediaplayerservice/MetadataRetrieverClient.h b/media/libmediaplayerservice/MetadataRetrieverClient.h index ce52b91..e71a29e 100644 --- a/media/libmediaplayerservice/MetadataRetrieverClient.h +++ b/media/libmediaplayerservice/MetadataRetrieverClient.h @@ -54,7 +54,7 @@ public: virtual sp extractAlbumArt(); virtual const char* extractMetadata(int keyCode); - virtual status_t dump(int fd, const Vector& args) const; + virtual status_t dump(int fd, const Vector& args); private: friend class MediaPlayerService; diff --git a/media/libmediaplayerservice/RemoteDisplay.h b/media/libmediaplayerservice/RemoteDisplay.h index 82a0116..1a48981 100644 --- a/media/libmediaplayerservice/RemoteDisplay.h +++ b/media/libmediaplayerservice/RemoteDisplay.h @@ -28,7 +28,7 @@ namespace android { struct ALooper; struct ANetworkSession; -struct IRemoteDisplayClient; +class IRemoteDisplayClient; struct WifiDisplaySource; struct RemoteDisplay : public BnRemoteDisplay { diff --git a/media/libmediaplayerservice/StagefrightRecorder.cpp b/media/libmediaplayerservice/StagefrightRecorder.cpp index 55763f0..fb21c73 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.cpp +++ b/media/libmediaplayerservice/StagefrightRecorder.cpp @@ -916,7 +916,6 @@ sp StagefrightRecorder::createAudioSource() { } sp format = new AMessage; - const char *mime; switch (mAudioEncoder) { case AUDIO_ENCODER_AMR_NB: case AUDIO_ENCODER_DEFAULT: diff --git a/media/libmediaplayerservice/StagefrightRecorder.h b/media/libmediaplayerservice/StagefrightRecorder.h index f34c229..8fa5bfa 100644 --- a/media/libmediaplayerservice/StagefrightRecorder.h +++ b/media/libmediaplayerservice/StagefrightRecorder.h @@ -37,7 +37,7 @@ struct AudioSource; class MediaProfiles; class IGraphicBufferProducer; class SurfaceMediaSource; -class ALooper; +struct ALooper; struct StagefrightRecorder : public MediaRecorderBase { StagefrightRecorder(); diff --git a/media/libmediaplayerservice/VideoFrameScheduler.h b/media/libmediaplayerservice/VideoFrameScheduler.h index 84b27b4..b1765c9 100644 --- a/media/libmediaplayerservice/VideoFrameScheduler.h +++ b/media/libmediaplayerservice/VideoFrameScheduler.h @@ -24,7 +24,7 @@ namespace android { -struct ISurfaceComposer; +class ISurfaceComposer; struct VideoFrameScheduler : public RefBase { VideoFrameScheduler(); diff --git a/media/libmediaplayerservice/nuplayer/Android.mk b/media/libmediaplayerservice/nuplayer/Android.mk index fca08e2..20193c3 100644 --- a/media/libmediaplayerservice/nuplayer/Android.mk +++ b/media/libmediaplayerservice/nuplayer/Android.mk @@ -25,6 +25,9 @@ LOCAL_C_INCLUDES := \ $(TOP)/frameworks/av/media/libmediaplayerservice \ $(TOP)/frameworks/native/include/media/openmax +LOCAL_CFLAGS += -Werror -Wall +LOCAL_CLANG := true + LOCAL_MODULE:= libstagefright_nuplayer LOCAL_MODULE_TAGS := eng diff --git a/media/libmediaplayerservice/nuplayer/GenericSource.cpp b/media/libmediaplayerservice/nuplayer/GenericSource.cpp index 8f1cd57..b7a88e7 100644 --- a/media/libmediaplayerservice/nuplayer/GenericSource.cpp +++ b/media/libmediaplayerservice/nuplayer/GenericSource.cpp @@ -703,7 +703,7 @@ void NuPlayer::GenericSource::onPollBuffering() { stopBufferingIfNecessary(); } } else if (cachedDataRemaining >= 0) { - ALOGV("onPollBuffering: cachedDataRemaining %d bytes", + ALOGV("onPollBuffering: cachedDataRemaining %zd bytes", cachedDataRemaining); if (cachedDataRemaining < kLowWaterMarkBytes) { @@ -790,7 +790,7 @@ void NuPlayer::GenericSource::onMessageReceived(const sp &msg) { } readBuffer(trackType, timeUs, &actualTimeUs, formatChange); readBuffer(counterpartType, -1, NULL, formatChange); - ALOGV("timeUs %lld actualTimeUs %lld", timeUs, actualTimeUs); + ALOGV("timeUs %lld actualTimeUs %lld", (long long)timeUs, (long long)actualTimeUs); break; } diff --git a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp index 1bd4e57..ada3bed 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayer.cpp @@ -971,7 +971,7 @@ void NuPlayer::onMessageReceived(const sp &msg) { CHECK(msg->findInt32("needNotify", &needNotify)); ALOGV("kWhatSeek seekTimeUs=%lld us, needNotify=%d", - seekTimeUs, needNotify); + (long long)seekTimeUs, needNotify); mDeferredActions.push_back( new FlushDecoderAction(FLUSH_CMD_FLUSH /* audio */, @@ -1336,8 +1336,6 @@ void NuPlayer::updateVideoSize( } int32_t displayWidth, displayHeight; - int32_t cropLeft, cropTop, cropRight, cropBottom; - if (outputFormat != NULL) { int32_t width, height; CHECK(outputFormat->findInt32("width", &width)); @@ -1570,7 +1568,7 @@ void NuPlayer::processDeferredActions() { void NuPlayer::performSeek(int64_t seekTimeUs, bool needNotify) { ALOGV("performSeek seekTimeUs=%lld us (%.2f secs), needNotify(%d)", - seekTimeUs, + (long long)seekTimeUs, seekTimeUs / 1E6, needNotify); diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp index cf3e8ad..ac3c6b6 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerCCDecoder.cpp @@ -51,6 +51,7 @@ static bool isNullPad(CCData *cc) { return cc->mData1 < 0x10 && cc->mData2 < 0x10; } +static void dumpBytePair(const sp &ccBuf) __attribute__ ((unused)); static void dumpBytePair(const sp &ccBuf) { size_t offset = 0; AString out; diff --git a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp index 827bdc1..f8be16a 100644 --- a/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp +++ b/media/libmediaplayerservice/nuplayer/NuPlayerRenderer.cpp @@ -856,7 +856,7 @@ void NuPlayer::Renderer::onDrainVideoQueue() { if (tooLate) { ALOGV("video late by %lld us (%.2f secs)", - mVideoLateByUs, mVideoLateByUs / 1E6); + (long long)mVideoLateByUs, mVideoLateByUs / 1E6); } else { int64_t mediaUs = 0; mMediaClock->getMediaTime(realTimeUs, &mediaUs); @@ -1178,7 +1178,7 @@ void NuPlayer::Renderer::onPause() { ALOGW("Renderer::onPause() called while already paused!"); return; } - int64_t currentPositionUs; + { Mutex::Autolock autoLock(mLock); ++mAudioDrainGeneration; @@ -1196,7 +1196,7 @@ void NuPlayer::Renderer::onPause() { startAudioOffloadPauseTimeout(); } - ALOGV("now paused audio queue has %d entries, video has %d entries", + ALOGV("now paused audio queue has %zu entries, video has %zu entries", mAudioQueue.size(), mVideoQueue.size()); } @@ -1289,7 +1289,7 @@ int64_t NuPlayer::Renderer::getPlayedOutAudioDurationUs(int64_t nowUs) { CHECK_EQ(res, (status_t)OK); numFramesPlayedAt = nowUs; numFramesPlayedAt += 1000LL * mAudioSink->latency() / 2; /* XXX */ - //ALOGD("getPosition: %d %lld", numFramesPlayed, numFramesPlayedAt); + //ALOGD("getPosition: %u %lld", numFramesPlayed, (long long)numFramesPlayedAt); } //CHECK_EQ(numFramesPlayed & (1 << 31), 0); // can't be negative until 12.4 hrs, test diff --git a/media/libmediaplayerservice/tests/Android.mk b/media/libmediaplayerservice/tests/Android.mk index 7bc78ff..8cbf782 100644 --- a/media/libmediaplayerservice/tests/Android.mk +++ b/media/libmediaplayerservice/tests/Android.mk @@ -18,6 +18,9 @@ LOCAL_C_INCLUDES := \ frameworks/av/include \ frameworks/av/media/libmediaplayerservice \ +LOCAL_CFLAGS += -Werror -Wall +LOCAL_CLANG := true + LOCAL_32_BIT_ONLY := true include $(BUILD_NATIVE_TEST) diff --git a/media/libmediaplayerservice/tests/DrmSessionManager_test.cpp b/media/libmediaplayerservice/tests/DrmSessionManager_test.cpp index d3e760b..de350a1 100644 --- a/media/libmediaplayerservice/tests/DrmSessionManager_test.cpp +++ b/media/libmediaplayerservice/tests/DrmSessionManager_test.cpp @@ -98,17 +98,17 @@ protected: mDrmSessionManager->addSession(kTestPid2, mTestDrm2, mSessionId2); mDrmSessionManager->addSession(kTestPid2, mTestDrm2, mSessionId3); const PidSessionInfosMap& map = sessionMap(); - EXPECT_EQ(2, map.size()); + EXPECT_EQ(2u, map.size()); ssize_t index1 = map.indexOfKey(kTestPid1); ASSERT_GE(index1, 0); const SessionInfos& infos1 = map[index1]; - EXPECT_EQ(1, infos1.size()); + EXPECT_EQ(1u, infos1.size()); ExpectEqSessionInfo(infos1[0], mTestDrm1, mSessionId1, 0); ssize_t index2 = map.indexOfKey(kTestPid2); ASSERT_GE(index2, 0); const SessionInfos& infos2 = map[index2]; - EXPECT_EQ(2, infos2.size()); + EXPECT_EQ(2u, infos2.size()); ExpectEqSessionInfo(infos2[0], mTestDrm2, mSessionId2, 1); ExpectEqSessionInfo(infos2[1], mTestDrm2, mSessionId3, 2); } @@ -185,11 +185,11 @@ TEST_F(DrmSessionManagerTest, removeSession) { mDrmSessionManager->removeSession(mSessionId2); const PidSessionInfosMap& map = sessionMap(); - EXPECT_EQ(2, map.size()); + EXPECT_EQ(2u, map.size()); const SessionInfos& infos1 = map.valueFor(kTestPid1); const SessionInfos& infos2 = map.valueFor(kTestPid2); - EXPECT_EQ(1, infos1.size()); - EXPECT_EQ(1, infos2.size()); + EXPECT_EQ(1u, infos1.size()); + EXPECT_EQ(1u, infos2.size()); // mSessionId2 has been removed. ExpectEqSessionInfo(infos2[0], mTestDrm2, mSessionId3, 2); } @@ -207,7 +207,7 @@ TEST_F(DrmSessionManagerTest, removeDrm) { const PidSessionInfosMap& map = sessionMap(); const SessionInfos& infos2 = map.valueFor(kTestPid2); - EXPECT_EQ(1, infos2.size()); + EXPECT_EQ(1u, infos2.size()); // mTestDrm2 has been removed. ExpectEqSessionInfo(infos2[0], drm, sessionId, 3); } @@ -220,7 +220,7 @@ TEST_F(DrmSessionManagerTest, reclaimSession) { EXPECT_FALSE(mDrmSessionManager->reclaimSession(50)); EXPECT_TRUE(mDrmSessionManager->reclaimSession(10)); - EXPECT_EQ(1, mTestDrm1->reclaimedSessions().size()); + EXPECT_EQ(1u, mTestDrm1->reclaimedSessions().size()); EXPECT_TRUE(isEqualSessionId(mSessionId1, mTestDrm1->reclaimedSessions()[0])); mDrmSessionManager->removeSession(mSessionId1); @@ -233,7 +233,7 @@ TEST_F(DrmSessionManagerTest, reclaimSession) { mDrmSessionManager->addSession(15, drm, sessionId); EXPECT_TRUE(mDrmSessionManager->reclaimSession(18)); - EXPECT_EQ(1, mTestDrm2->reclaimedSessions().size()); + EXPECT_EQ(1u, mTestDrm2->reclaimedSessions().size()); // mSessionId2 is reclaimed. EXPECT_TRUE(isEqualSessionId(mSessionId2, mTestDrm2->reclaimedSessions()[0])); } diff --git a/media/libstagefright/rtsp/MyHandler.h b/media/libstagefright/rtsp/MyHandler.h index 0642343..00f071b 100644 --- a/media/libstagefright/rtsp/MyHandler.h +++ b/media/libstagefright/rtsp/MyHandler.h @@ -651,7 +651,7 @@ struct MyHandler : public AHandler { int32_t result; CHECK(msg->findInt32("result", &result)); - ALOGI("SETUP(%d) completed with result %d (%s)", + ALOGI("SETUP(%zu) completed with result %d (%s)", index, result, strerror(-result)); if (result == OK) { @@ -1012,7 +1012,7 @@ struct MyHandler : public AHandler { int32_t eos; if (msg->findInt32("eos", &eos)) { - ALOGI("received BYE on track index %d", trackIndex); + ALOGI("received BYE on track index %zu", trackIndex); if (!mAllTracksHaveTime && dataReceivedOnAllChannels()) { ALOGI("No time established => fake existing data"); @@ -1564,7 +1564,7 @@ private: new APacketSource(mSessionDesc, index); if (source->initCheck() != OK) { - ALOGW("Unsupported format. Ignoring track #%d.", index); + ALOGW("Unsupported format. Ignoring track #%zu.", index); sp reply = new AMessage('setu', this); reply->setSize("index", index); @@ -1606,7 +1606,7 @@ private: info->mTimeScale = timescale; info->mEOSReceived = false; - ALOGV("track #%d URL=%s", mTracks.size(), trackURL.c_str()); + ALOGV("track #%zu URL=%s", mTracks.size(), trackURL.c_str()); AString request = "SETUP "; request.append(trackURL); @@ -1731,8 +1731,8 @@ private: } void onTimeUpdate(int32_t trackIndex, uint32_t rtpTime, uint64_t ntpTime) { - ALOGV("onTimeUpdate track %d, rtpTime = 0x%08x, ntpTime = 0x%016llx", - trackIndex, rtpTime, ntpTime); + ALOGV("onTimeUpdate track %d, rtpTime = 0x%08x, ntpTime = %#016llx", + trackIndex, rtpTime, (long long)ntpTime); int64_t ntpTimeUs = (int64_t)(ntpTime * 1E6 / (1ll << 32)); @@ -1851,8 +1851,8 @@ private: return false; } - ALOGV("track %d rtpTime=%d mediaTimeUs = %lld us (%.2f secs)", - trackIndex, rtpTime, mediaTimeUs, mediaTimeUs / 1E6); + ALOGV("track %d rtpTime=%u mediaTimeUs = %lld us (%.2f secs)", + trackIndex, rtpTime, (long long)mediaTimeUs, mediaTimeUs / 1E6); accessUnit->meta()->setInt64("timeUs", mediaTimeUs); diff --git a/media/libstagefright/wifi-display/source/WifiDisplaySource.h b/media/libstagefright/wifi-display/source/WifiDisplaySource.h index 0f779e4..c417cf5 100644 --- a/media/libstagefright/wifi-display/source/WifiDisplaySource.h +++ b/media/libstagefright/wifi-display/source/WifiDisplaySource.h @@ -29,7 +29,7 @@ namespace android { struct AReplyToken; struct IHDCP; -struct IRemoteDisplayClient; +class IRemoteDisplayClient; struct ParsedMessage; // Represents the RTSP server acting as a wifi display source. -- cgit v1.1