summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/wifi-display
diff options
context:
space:
mode:
authorAndreas Huber <andih@google.com>2013-02-07 11:38:08 -0800
committerAndreas Huber <andih@google.com>2013-02-07 13:33:28 -0800
commit1dfc70879323990ba4b4d3e7cadc93ea3900063c (patch)
tree3153e38fe4f71bd3ad754d569a594591fb1950b5 /media/libstagefright/wifi-display
parent0955986e6c1c27ba752e293246086ea79c49d39c (diff)
downloadframeworks_av-1dfc70879323990ba4b4d3e7cadc93ea3900063c.zip
frameworks_av-1dfc70879323990ba4b4d3e7cadc93ea3900063c.tar.gz
frameworks_av-1dfc70879323990ba4b4d3e7cadc93ea3900063c.tar.bz2
A few more patches to fix wfd tcp unicast transport.
Change-Id: Ie2f1b1e56c487ac4c3ef19d9e79022a35084e042
Diffstat (limited to 'media/libstagefright/wifi-display')
-rw-r--r--media/libstagefright/wifi-display/sink/RTPSink.cpp14
-rw-r--r--media/libstagefright/wifi-display/sink/RTPSink.h3
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