Loading include/media/IMediaSource.h +7 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,9 @@ public: virtual status_t readMultiple( Vector<MediaBuffer *> *buffers, uint32_t maxNumBuffers = 1) = 0; // Returns true if |readMultiple| is supported, otherwise false. virtual bool supportReadMultiple() = 0; // Causes this source to suspend pulling data from its upstream source // until a subsequent read-with-seek. Currently only supported by // OMXCodec. Loading Loading @@ -148,6 +151,10 @@ public: Vector<MediaBuffer *> * /* buffers */, uint32_t /* maxNumBuffers = 1 */) { return ERROR_UNSUPPORTED; } virtual bool supportReadMultiple() { return false; } protected: virtual ~BnMediaSource(); Loading media/libmedia/IMediaSource.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,10 @@ public: return ret; } bool supportReadMultiple() { return true; } virtual status_t pause() { ALOGV("pause"); Parcel data, reply; Loading media/libmediaplayerservice/nuplayer/GenericSource.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -1420,7 +1420,9 @@ void NuPlayer::GenericSource::readBuffer( options.setNonBlocking(); } bool couldReadMultiple = (!mIsWidevine && trackType == MEDIA_TRACK_TYPE_AUDIO); bool couldReadMultiple = (!mIsWidevine && trackType == MEDIA_TRACK_TYPE_AUDIO && track->mSource->supportReadMultiple()); for (size_t numBuffers = 0; numBuffers < maxBuffers; ) { Vector<MediaBuffer *> mediaBuffers; status_t err = NO_ERROR; Loading Loading
include/media/IMediaSource.h +7 −0 Original line number Diff line number Diff line Loading @@ -114,6 +114,9 @@ public: virtual status_t readMultiple( Vector<MediaBuffer *> *buffers, uint32_t maxNumBuffers = 1) = 0; // Returns true if |readMultiple| is supported, otherwise false. virtual bool supportReadMultiple() = 0; // Causes this source to suspend pulling data from its upstream source // until a subsequent read-with-seek. Currently only supported by // OMXCodec. Loading Loading @@ -148,6 +151,10 @@ public: Vector<MediaBuffer *> * /* buffers */, uint32_t /* maxNumBuffers = 1 */) { return ERROR_UNSUPPORTED; } virtual bool supportReadMultiple() { return false; } protected: virtual ~BnMediaSource(); Loading
media/libmedia/IMediaSource.cpp +4 −0 Original line number Diff line number Diff line Loading @@ -221,6 +221,10 @@ public: return ret; } bool supportReadMultiple() { return true; } virtual status_t pause() { ALOGV("pause"); Parcel data, reply; Loading
media/libmediaplayerservice/nuplayer/GenericSource.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -1420,7 +1420,9 @@ void NuPlayer::GenericSource::readBuffer( options.setNonBlocking(); } bool couldReadMultiple = (!mIsWidevine && trackType == MEDIA_TRACK_TYPE_AUDIO); bool couldReadMultiple = (!mIsWidevine && trackType == MEDIA_TRACK_TYPE_AUDIO && track->mSource->supportReadMultiple()); for (size_t numBuffers = 0; numBuffers < maxBuffers; ) { Vector<MediaBuffer *> mediaBuffers; status_t err = NO_ERROR; Loading