summaryrefslogtreecommitdiffstats
path: root/media/libavextensions
diff options
context:
space:
mode:
authorLi Sun <sunli@codeaurora.org>2015-07-03 15:13:43 +0800
committerLinux Build Service Account <lnxbuild@localhost>2015-10-06 03:24:20 -0600
commit5a68fc340e5b61ec29d8283433ddb003d6871abc (patch)
treebae9e41241cac6554c74e76198368bff675d311a /media/libavextensions
parent502b3cb43aba4eae5928647515fec58a3ed0c70c (diff)
downloadframeworks_av-5a68fc340e5b61ec29d8283433ddb003d6871abc.zip
frameworks_av-5a68fc340e5b61ec29d8283433ddb003d6871abc.tar.gz
frameworks_av-5a68fc340e5b61ec29d8283433ddb003d6871abc.tar.bz2
RTSP: add RTSP extensions for IPV6 support
Change access modifiers and add overridables in rtsp stack. Make ARTSPConnection/ARTPConnection extensible for IPV6 support. Provide default implementations in AVMediaServiceExensions and AVMediaServiceFactory. Change-Id: Iaa67070d1832d56e0569dabfd8327c1998f04493
Diffstat (limited to 'media/libavextensions')
-rw-r--r--media/libavextensions/Android.mk2
-rw-r--r--media/libavextensions/mediaplayerservice/AVMediaServiceExtensions.h16
-rw-r--r--media/libavextensions/mediaplayerservice/AVMediaServiceFactory.cpp11
-rw-r--r--media/libavextensions/mediaplayerservice/AVMediaServiceUtils.cpp20
4 files changed, 49 insertions, 0 deletions
diff --git a/media/libavextensions/Android.mk b/media/libavextensions/Android.mk
index 391edcb..511f13f 100644
--- a/media/libavextensions/Android.mk
+++ b/media/libavextensions/Android.mk
@@ -67,6 +67,8 @@ LOCAL_C_INCLUDES:= \
$(TOP)/frameworks/av/include/media/ \
$(TOP)/frameworks/av/media/libmediaplayerservice \
$(TOP)/frameworks/av/media/libavextensions \
+ $(TOP)/frameworks/av/media/libstagefright/include \
+ $(TOP)/frameworks/av/media/libstagefright/rtsp \
$(TOP)/frameworks/native/include/media/hardware \
$(TOP)/frameworks/native/include/media/openmax \
$(TOP)/external/flac/include \
diff --git a/media/libavextensions/mediaplayerservice/AVMediaServiceExtensions.h b/media/libavextensions/mediaplayerservice/AVMediaServiceExtensions.h
index 327e0a0..5c31fad 100644
--- a/media/libavextensions/mediaplayerservice/AVMediaServiceExtensions.h
+++ b/media/libavextensions/mediaplayerservice/AVMediaServiceExtensions.h
@@ -31,11 +31,16 @@
#include <common/AVExtensionsCommon.h>
+#include <utils/RefBase.h>
#include <utils/String16.h>
namespace android {
struct StagefrightRecorder;
+struct ARTSPConnection;
+struct ARTPConnection;
+struct AString;
+struct MyHandler;
/*
* Factory to create objects of base-classes in libmediaplayerservice
@@ -43,6 +48,10 @@ struct StagefrightRecorder;
struct AVMediaServiceFactory {
virtual StagefrightRecorder *createStagefrightRecorder(const String16 &);
+ // RTSP extensions
+ virtual sp<ARTSPConnection> createARTSPConnection(bool uidValid, uid_t uid);
+ virtual sp<ARTPConnection> createARTPConnection();
+
// ----- NO TRESSPASSING BEYOND THIS LINE ------
DECLARE_LOADABLE_SINGLETON(AVMediaServiceFactory);
};
@@ -52,6 +61,13 @@ struct AVMediaServiceFactory {
*/
struct AVMediaServiceUtils {
+ // RTSP IPV6 utils
+ virtual bool pokeAHole(sp<MyHandler> handler, int rtpSocket, int rtcpSocket,
+ const AString &transport, const AString &sessionHost);
+ virtual void makePortPair(int *rtpSocket, int *rtcpSocket, unsigned *rtpPort,
+ bool isIPV6);
+ virtual const char* parseURL(AString *host);
+
// ----- NO TRESSPASSING BEYOND THIS LINE ------
DECLARE_LOADABLE_SINGLETON(AVMediaServiceUtils);
};
diff --git a/media/libavextensions/mediaplayerservice/AVMediaServiceFactory.cpp b/media/libavextensions/mediaplayerservice/AVMediaServiceFactory.cpp
index eb0ebb7..10b66f5 100644
--- a/media/libavextensions/mediaplayerservice/AVMediaServiceFactory.cpp
+++ b/media/libavextensions/mediaplayerservice/AVMediaServiceFactory.cpp
@@ -32,6 +32,8 @@
#include <media/stagefright/foundation/ADebug.h>
#include <media/stagefright/foundation/AMessage.h>
+#include "ARTPConnection.h"
+#include "ARTSPConnection.h"
#include "MediaRecorderClient.h"
#include "MediaPlayerService.h"
@@ -46,6 +48,15 @@ StagefrightRecorder *AVMediaServiceFactory::createStagefrightRecorder(
return new StagefrightRecorder(opPackageName);
}
+sp<ARTSPConnection> AVMediaServiceFactory::createARTSPConnection(
+ bool uidValid, uid_t uid) {
+ return new ARTSPConnection(uidValid, uid);
+}
+
+sp<ARTPConnection> AVMediaServiceFactory::createARTPConnection() {
+ return new ARTPConnection();
+}
+
// ----- NO TRESSPASSING BEYOND THIS LINE ------
AVMediaServiceFactory::AVMediaServiceFactory() {
}
diff --git a/media/libavextensions/mediaplayerservice/AVMediaServiceUtils.cpp b/media/libavextensions/mediaplayerservice/AVMediaServiceUtils.cpp
index a3da1df..705ce8a 100644
--- a/media/libavextensions/mediaplayerservice/AVMediaServiceUtils.cpp
+++ b/media/libavextensions/mediaplayerservice/AVMediaServiceUtils.cpp
@@ -31,11 +31,31 @@
#include <utils/Log.h>
#include <media/stagefright/foundation/ADebug.h>
+#include "ARTPConnection.h"
+#include "MyHandler.h"
+
#include "common/ExtensionsLoader.hpp"
#include "mediaplayerservice/AVMediaServiceExtensions.h"
namespace android {
+bool AVMediaServiceUtils::pokeAHole(sp<MyHandler> handler, int rtpSocket, int rtcpSocket,
+ const AString &transport, const AString &/*sessionHost*/) {
+ if (handler == NULL) {
+ ALOGW("MyHandler is NULL");
+ return false;
+ }
+ return handler->pokeAHole(rtpSocket, rtcpSocket, transport);
+}
+
+void AVMediaServiceUtils::makePortPair(int *rtpSocket, int *rtcpSocket, unsigned *rtpPort,
+ bool /*isIPV6*/) {
+ return ARTPConnection::MakePortPair(rtpSocket, rtcpSocket, rtpPort);
+}
+
+const char* AVMediaServiceUtils::parseURL(AString *host) {
+ return strchr(host->c_str(), ':');
+}
// ----- NO TRESSPASSING BEYOND THIS LINE ------
AVMediaServiceUtils::AVMediaServiceUtils() {