summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2014-02-21 12:01:23 -0800
committerMarco Nelissen <marcone@google.com>2014-02-21 12:32:11 -0800
commitc9c7e25a4b1c34439fb365f6cfbef063884566cc (patch)
tree43162dd8e8867d610a3791c6ca2b2efcf4875f69
parent3a005b3b19b750afe24577ae322aff4602ca2740 (diff)
downloadframeworks_av-c9c7e25a4b1c34439fb365f6cfbef063884566cc.zip
frameworks_av-c9c7e25a4b1c34439fb365f6cfbef063884566cc.tar.gz
frameworks_av-c9c7e25a4b1c34439fb365f6cfbef063884566cc.tar.bz2
Add method to get redirected Uri
Change-Id: Id8aac1077c3de1bb1f58bfcfcca93d685abe9b79
-rw-r--r--include/media/IMediaHTTPConnection.h1
-rw-r--r--media/libmedia/IMediaHTTPConnection.cpp21
-rw-r--r--media/libstagefright/http/MediaHTTP.cpp4
3 files changed, 26 insertions, 0 deletions
diff --git a/include/media/IMediaHTTPConnection.h b/include/media/IMediaHTTPConnection.h
index e048b64..2a63eb7 100644
--- a/include/media/IMediaHTTPConnection.h
+++ b/include/media/IMediaHTTPConnection.h
@@ -38,6 +38,7 @@ struct IMediaHTTPConnection : public IInterface {
virtual ssize_t readAt(off64_t offset, void *data, size_t size) = 0;
virtual off64_t getSize() = 0;
virtual status_t getMIMEType(String8 *mimeType) = 0;
+ virtual status_t getUri(String8 *uri) = 0;
private:
DISALLOW_EVIL_CONSTRUCTORS(IMediaHTTPConnection);
diff --git a/media/libmedia/IMediaHTTPConnection.cpp b/media/libmedia/IMediaHTTPConnection.cpp
index 622d9cf..22c470a 100644
--- a/media/libmedia/IMediaHTTPConnection.cpp
+++ b/media/libmedia/IMediaHTTPConnection.cpp
@@ -33,6 +33,7 @@ enum {
READ_AT,
GET_SIZE,
GET_MIME_TYPE,
+ GET_URI
};
struct BpMediaHTTPConnection : public BpInterface<IMediaHTTPConnection> {
@@ -147,6 +148,26 @@ struct BpMediaHTTPConnection : public BpInterface<IMediaHTTPConnection> {
return OK;
}
+ virtual status_t getUri(String8 *uri) {
+ *uri = String8("");
+
+ Parcel data, reply;
+ data.writeInterfaceToken(
+ IMediaHTTPConnection::getInterfaceDescriptor());
+
+ remote()->transact(GET_URI, data, &reply);
+
+ int32_t exceptionCode = reply.readExceptionCode();
+
+ if (exceptionCode) {
+ return UNKNOWN_ERROR;
+ }
+
+ *uri = String8(reply.readString16());
+
+ return OK;
+ }
+
private:
sp<IMemory> mMemory;
};
diff --git a/media/libstagefright/http/MediaHTTP.cpp b/media/libstagefright/http/MediaHTTP.cpp
index 157d967..2d29913 100644
--- a/media/libstagefright/http/MediaHTTP.cpp
+++ b/media/libstagefright/http/MediaHTTP.cpp
@@ -171,6 +171,10 @@ void MediaHTTP::getDrmInfo(
}
String8 MediaHTTP::getUri() {
+ String8 uri;
+ if (OK == mHTTPConnection->getUri(&uri)) {
+ return uri;
+ }
return String8(mLastURI.c_str());
}