diff options
Diffstat (limited to 'media')
-rw-r--r-- | media/libmedia/IMediaHTTPConnection.cpp | 21 | ||||
-rw-r--r-- | media/libstagefright/http/MediaHTTP.cpp | 4 |
2 files changed, 25 insertions, 0 deletions
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()); } |