diff options
author | Marco Nelissen <marcone@google.com> | 2014-02-21 12:01:23 -0800 |
---|---|---|
committer | Marco Nelissen <marcone@google.com> | 2014-02-21 12:32:11 -0800 |
commit | c9c7e25a4b1c34439fb365f6cfbef063884566cc (patch) | |
tree | 43162dd8e8867d610a3791c6ca2b2efcf4875f69 | |
parent | 3a005b3b19b750afe24577ae322aff4602ca2740 (diff) | |
download | frameworks_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.h | 1 | ||||
-rw-r--r-- | media/libmedia/IMediaHTTPConnection.cpp | 21 | ||||
-rw-r--r-- | media/libstagefright/http/MediaHTTP.cpp | 4 |
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()); } |