Loading media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp +18 −5 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MetaData.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/Utils.h> namespace android { Loading Loading @@ -100,26 +101,38 @@ void NuPlayer::HTTPLiveSource::prepareAsync() { void NuPlayer::HTTPLiveSource::start() { } sp<MetaData> NuPlayer::HTTPLiveSource::getFormatMeta(bool audio) { sp<MetaData> meta; if (mLiveSession != NULL) { mLiveSession->getStreamFormatMeta( audio ? LiveSession::STREAMTYPE_AUDIO : LiveSession::STREAMTYPE_VIDEO, &meta); } return meta; } sp<AMessage> NuPlayer::HTTPLiveSource::getFormat(bool audio) { sp<AMessage> format; sp<MetaData> meta; status_t err = -EWOULDBLOCK; if (mLiveSession != NULL) { err = mLiveSession->getStreamFormat( err = mLiveSession->getStreamFormatMeta( audio ? LiveSession::STREAMTYPE_AUDIO : LiveSession::STREAMTYPE_VIDEO, &format); &meta); } sp<AMessage> format; if (err == -EWOULDBLOCK) { format = new AMessage(); format->setInt32("err", err); return format; } if (err != OK) { if (err != OK || convertMetaDataToMessage(meta, &format) != OK) { return NULL; } return format; } Loading media/libmediaplayerservice/nuplayer/HTTPLiveSource.h +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ struct NuPlayer::HTTPLiveSource : public NuPlayer::Source { virtual void start(); virtual status_t dequeueAccessUnit(bool audio, sp<ABuffer> *accessUnit); virtual sp<MetaData> getFormatMeta(bool audio); virtual sp<AMessage> getFormat(bool audio); virtual status_t feedMoreTSData(); Loading media/libstagefright/httplive/LiveSession.cpp +7 −7 Original line number Diff line number Diff line Loading @@ -467,28 +467,28 @@ status_t LiveSession::dequeueAccessUnit( return err; } status_t LiveSession::getStreamFormat(StreamType stream, sp<AMessage> *format) { status_t LiveSession::getStreamFormatMeta(StreamType stream, sp<MetaData> *meta) { if (!(mStreamMask & stream)) { return UNKNOWN_ERROR; } sp<AnotherPacketSource> packetSource = mPacketSources.valueFor(stream); sp<MetaData> meta = packetSource->getFormat(); *meta = packetSource->getFormat(); if (meta == NULL) { if (*meta == NULL) { return -EWOULDBLOCK; } if (stream == STREAMTYPE_AUDIO) { // set AAC input buffer size to 32K bytes (256kbps x 1sec) meta->setInt32(kKeyMaxInputSize, 32 * 1024); (*meta)->setInt32(kKeyMaxInputSize, 32 * 1024); } else if (stream == STREAMTYPE_VIDEO) { meta->setInt32(kKeyMaxWidth, mMaxWidth); meta->setInt32(kKeyMaxHeight, mMaxHeight); (*meta)->setInt32(kKeyMaxWidth, mMaxWidth); (*meta)->setInt32(kKeyMaxHeight, mMaxHeight); } return convertMetaDataToMessage(meta, format); return OK; } sp<HTTPDownloader> LiveSession::getHTTPDownloader() { Loading media/libstagefright/httplive/LiveSession.h +1 −1 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ struct LiveSession : public AHandler { int64_t calculateMediaTimeUs(int64_t firstTimeUs, int64_t timeUs, int32_t discontinuitySeq); status_t dequeueAccessUnit(StreamType stream, sp<ABuffer> *accessUnit); status_t getStreamFormat(StreamType stream, sp<AMessage> *format); status_t getStreamFormatMeta(StreamType stream, sp<MetaData> *meta); sp<HTTPDownloader> getHTTPDownloader(); Loading Loading
media/libmediaplayerservice/nuplayer/HTTPLiveSource.cpp +18 −5 Original line number Diff line number Diff line Loading @@ -30,6 +30,7 @@ #include <media/stagefright/MediaErrors.h> #include <media/stagefright/MetaData.h> #include <media/stagefright/MediaDefs.h> #include <media/stagefright/Utils.h> namespace android { Loading Loading @@ -100,26 +101,38 @@ void NuPlayer::HTTPLiveSource::prepareAsync() { void NuPlayer::HTTPLiveSource::start() { } sp<MetaData> NuPlayer::HTTPLiveSource::getFormatMeta(bool audio) { sp<MetaData> meta; if (mLiveSession != NULL) { mLiveSession->getStreamFormatMeta( audio ? LiveSession::STREAMTYPE_AUDIO : LiveSession::STREAMTYPE_VIDEO, &meta); } return meta; } sp<AMessage> NuPlayer::HTTPLiveSource::getFormat(bool audio) { sp<AMessage> format; sp<MetaData> meta; status_t err = -EWOULDBLOCK; if (mLiveSession != NULL) { err = mLiveSession->getStreamFormat( err = mLiveSession->getStreamFormatMeta( audio ? LiveSession::STREAMTYPE_AUDIO : LiveSession::STREAMTYPE_VIDEO, &format); &meta); } sp<AMessage> format; if (err == -EWOULDBLOCK) { format = new AMessage(); format->setInt32("err", err); return format; } if (err != OK) { if (err != OK || convertMetaDataToMessage(meta, &format) != OK) { return NULL; } return format; } Loading
media/libmediaplayerservice/nuplayer/HTTPLiveSource.h +1 −0 Original line number Diff line number Diff line Loading @@ -38,6 +38,7 @@ struct NuPlayer::HTTPLiveSource : public NuPlayer::Source { virtual void start(); virtual status_t dequeueAccessUnit(bool audio, sp<ABuffer> *accessUnit); virtual sp<MetaData> getFormatMeta(bool audio); virtual sp<AMessage> getFormat(bool audio); virtual status_t feedMoreTSData(); Loading
media/libstagefright/httplive/LiveSession.cpp +7 −7 Original line number Diff line number Diff line Loading @@ -467,28 +467,28 @@ status_t LiveSession::dequeueAccessUnit( return err; } status_t LiveSession::getStreamFormat(StreamType stream, sp<AMessage> *format) { status_t LiveSession::getStreamFormatMeta(StreamType stream, sp<MetaData> *meta) { if (!(mStreamMask & stream)) { return UNKNOWN_ERROR; } sp<AnotherPacketSource> packetSource = mPacketSources.valueFor(stream); sp<MetaData> meta = packetSource->getFormat(); *meta = packetSource->getFormat(); if (meta == NULL) { if (*meta == NULL) { return -EWOULDBLOCK; } if (stream == STREAMTYPE_AUDIO) { // set AAC input buffer size to 32K bytes (256kbps x 1sec) meta->setInt32(kKeyMaxInputSize, 32 * 1024); (*meta)->setInt32(kKeyMaxInputSize, 32 * 1024); } else if (stream == STREAMTYPE_VIDEO) { meta->setInt32(kKeyMaxWidth, mMaxWidth); meta->setInt32(kKeyMaxHeight, mMaxHeight); (*meta)->setInt32(kKeyMaxWidth, mMaxWidth); (*meta)->setInt32(kKeyMaxHeight, mMaxHeight); } return convertMetaDataToMessage(meta, format); return OK; } sp<HTTPDownloader> LiveSession::getHTTPDownloader() { Loading
media/libstagefright/httplive/LiveSession.h +1 −1 Original line number Diff line number Diff line Loading @@ -75,7 +75,7 @@ struct LiveSession : public AHandler { int64_t calculateMediaTimeUs(int64_t firstTimeUs, int64_t timeUs, int32_t discontinuitySeq); status_t dequeueAccessUnit(StreamType stream, sp<ABuffer> *accessUnit); status_t getStreamFormat(StreamType stream, sp<AMessage> *format); status_t getStreamFormatMeta(StreamType stream, sp<MetaData> *meta); sp<HTTPDownloader> getHTTPDownloader(); Loading