diff options
Diffstat (limited to 'media/libstagefright/wifi-display')
-rw-r--r-- | media/libstagefright/wifi-display/sink/RTPSink.cpp | 14 | ||||
-rw-r--r-- | media/libstagefright/wifi-display/sink/RTPSink.h | 3 |
2 files changed, 16 insertions, 1 deletions
diff --git a/media/libstagefright/wifi-display/sink/RTPSink.cpp b/media/libstagefright/wifi-display/sink/RTPSink.cpp index be54595..3c90a1e 100644 --- a/media/libstagefright/wifi-display/sink/RTPSink.cpp +++ b/media/libstagefright/wifi-display/sink/RTPSink.cpp @@ -250,6 +250,8 @@ RTPSink::RTPSink( : mNetSession(netSession), mSurfaceTex(bufferProducer), mNotify(notify), + mUsingTCPTransport(false), + mUsingTCPInterleaving(false), mRTPPort(0), mRTPSessionID(0), mRTCPSessionID(0), @@ -280,6 +282,9 @@ RTPSink::~RTPSink() { } status_t RTPSink::init(bool usingTCPTransport, bool usingTCPInterleaving) { + mUsingTCPTransport = usingTCPTransport; + mUsingTCPInterleaving = usingTCPInterleaving; + if (usingTCPInterleaving) { return OK; } @@ -717,7 +722,9 @@ status_t RTPSink::connect( mRTCPSessionID, buf->data(), buf->size()); #endif - scheduleSendRR(); + if (!mUsingTCPTransport) { + scheduleSendRR(); + } return OK; } @@ -820,6 +827,11 @@ void RTPSink::onSendRR() { } void RTPSink::onPacketLost(const sp<AMessage> &msg) { + if (mUsingTCPTransport) { + ALOGW("huh? lost a packet even though using reliable transport?"); + return; + } + uint32_t srcId; CHECK(msg->findInt32("ssrc", (int32_t *)&srcId)); diff --git a/media/libstagefright/wifi-display/sink/RTPSink.h b/media/libstagefright/wifi-display/sink/RTPSink.h index f9cbce9..4706c6d 100644 --- a/media/libstagefright/wifi-display/sink/RTPSink.h +++ b/media/libstagefright/wifi-display/sink/RTPSink.h @@ -78,6 +78,9 @@ private: sp<AMessage> mNotify; KeyedVector<uint32_t, sp<Source> > mSources; + bool mUsingTCPTransport; + bool mUsingTCPInterleaving; + int32_t mRTPPort; int32_t mRTPSessionID; // in TCP unicast mode these are just server |