From 26b0a9d007e77e088af9ff3810734728f0558e85 Mon Sep 17 00:00:00 2001 From: Andreas Huber Date: Thu, 7 Feb 2013 11:38:08 -0800 Subject: [PATCH] A few more patches to fix wfd tcp unicast transport. Change-Id: Ie2f1b1e56c487ac4c3ef19d9e79022a35084e042 --- media/libstagefright/wifi-display/sink/DirectRenderer.cpp | 2 +- media/libstagefright/wifi-display/sink/RTPSink.cpp | 14 +++++++++++++- media/libstagefright/wifi-display/sink/RTPSink.h | 3 +++ 3 files changed, 17 insertions(+), 2 deletions(-) diff --git a/media/libstagefright/wifi-display/sink/DirectRenderer.cpp b/media/libstagefright/wifi-display/sink/DirectRenderer.cpp index 23cf6fdbad..d7f169fb3b 100644 --- a/media/libstagefright/wifi-display/sink/DirectRenderer.cpp +++ b/media/libstagefright/wifi-display/sink/DirectRenderer.cpp @@ -35,7 +35,7 @@ namespace android { -#if 0 +#if 1 // static const int64_t DirectRenderer::kPacketLostDelayUs = 80000ll; diff --git a/media/libstagefright/wifi-display/sink/RTPSink.cpp b/media/libstagefright/wifi-display/sink/RTPSink.cpp index be54595137..3c90a1e379 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 &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 f9cbce94a2..4706c6dc6c 100644 --- a/media/libstagefright/wifi-display/sink/RTPSink.h +++ b/media/libstagefright/wifi-display/sink/RTPSink.h @@ -78,6 +78,9 @@ private: sp mNotify; KeyedVector > mSources; + bool mUsingTCPTransport; + bool mUsingTCPInterleaving; + int32_t mRTPPort; int32_t mRTPSessionID; // in TCP unicast mode these are just server -- 2.11.0