summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/wifi-display/sink/RTPSink.h
diff options
context:
space:
mode:
Diffstat (limited to 'media/libstagefright/wifi-display/sink/RTPSink.h')
-rw-r--r--media/libstagefright/wifi-display/sink/RTPSink.h15
1 files changed, 14 insertions, 1 deletions
diff --git a/media/libstagefright/wifi-display/sink/RTPSink.h b/media/libstagefright/wifi-display/sink/RTPSink.h
index 2183fd6..6e40185 100644
--- a/media/libstagefright/wifi-display/sink/RTPSink.h
+++ b/media/libstagefright/wifi-display/sink/RTPSink.h
@@ -24,18 +24,26 @@
#include <gui/Surface.h>
+#define USE_TUNNEL_RENDERER 0
+
namespace android {
struct ABuffer;
struct ANetworkSession;
+
+#if USE_TUNNEL_RENDERER
struct TunnelRenderer;
+#else
+struct DirectRenderer;
+#endif
// Creates a pair of sockets for RTP/RTCP traffic, instantiates a renderer
// for incoming transport stream data and occasionally sends statistics over
// the RTCP channel.
struct RTPSink : public AHandler {
RTPSink(const sp<ANetworkSession> &netSession,
- const sp<IGraphicBufferProducer> &bufferProducer);
+ const sp<IGraphicBufferProducer> &bufferProducer,
+ const sp<AMessage> &notify);
// If TCP interleaving is used, no UDP sockets are created, instead
// incoming RTP/RTCP packets (arriving on the RTSP control connection)
@@ -67,6 +75,7 @@ private:
sp<ANetworkSession> mNetSession;
sp<IGraphicBufferProducer> mSurfaceTex;
+ sp<AMessage> mNotify;
KeyedVector<uint32_t, sp<Source> > mSources;
int32_t mRTPPort;
@@ -78,7 +87,11 @@ private:
LinearRegression mRegression;
int64_t mMaxDelayMs;
+#if USE_TUNNEL_RENDERER
sp<TunnelRenderer> mRenderer;
+#else
+ sp<DirectRenderer> mRenderer;
+#endif
status_t parseRTP(const sp<ABuffer> &buffer);
status_t parseRTCP(const sp<ABuffer> &buffer);