Loading include/media/stagefright/ACodec.h +1 −0 Original line number Diff line number Diff line Loading @@ -192,6 +192,7 @@ private: List<sp<AMessage> > mDeferredQueue; bool mSentFormat; bool mIsVideo; bool mIsEncoder; bool mUseMetadataOnEncoderOutput; bool mShutdownInProgress; Loading media/libmediaplayerservice/nuplayer/NuPlayer.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,17 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { if (mRenderer != NULL) { mRenderer->setPlaybackRate(mPlaybackRate); } if (mVideoDecoder != NULL) { sp<MetaData> meta = getFileMeta(); int32_t rate; if (meta != NULL && meta->findInt32(kKeyFrameRate, &rate) && rate > 0) { sp<AMessage> params = new AMessage(); params->setFloat("operating-rate", rate * mPlaybackRate); mVideoDecoder->setParameters(params); } } break; } Loading Loading @@ -1249,6 +1260,8 @@ status_t NuPlayer::instantiateDecoder(bool audio, sp<DecoderBase> *decoder) { return -EWOULDBLOCK; } format->setInt32("priority", 0 /* realtime */); if (!audio) { AString mime; CHECK(format->findString("mime", &mime)); Loading @@ -1265,6 +1278,12 @@ status_t NuPlayer::instantiateDecoder(bool audio, sp<DecoderBase> *decoder) { if (mSourceFlags & Source::FLAG_PROTECTED) { format->setInt32("protected", true); } sp<MetaData> meta = getFileMeta(); int32_t rate; if (meta != NULL && meta->findInt32(kKeyFrameRate, &rate) && rate > 0) { format->setFloat("operating-rate", rate * mPlaybackRate); } } if (audio) { Loading media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -252,6 +252,14 @@ void NuPlayer::Decoder::onConfigure(const sp<AMessage> &format) { mResumePending = false; } void NuPlayer::Decoder::onSetParameters(const sp<AMessage> ¶ms) { if (mCodec == NULL) { ALOGW("onSetParameters called before codec is created."); return; } mCodec->setParameters(params); } void NuPlayer::Decoder::onSetRenderer(const sp<Renderer> &renderer) { bool hadNoRenderer = (mRenderer == NULL); mRenderer = renderer; Loading media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ protected: virtual void onMessageReceived(const sp<AMessage> &msg); virtual void onConfigure(const sp<AMessage> &format); virtual void onSetParameters(const sp<AMessage> ¶ms); virtual void onSetRenderer(const sp<Renderer> &renderer); virtual void onGetInputBuffers(Vector<sp<ABuffer> > *dstBuffers); virtual void onResume(bool notifyComplete); Loading media/libmediaplayerservice/nuplayer/NuPlayerDecoderBase.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,12 @@ void NuPlayer::DecoderBase::init() { mDecoderLooper->registerHandler(this); } void NuPlayer::DecoderBase::setParameters(const sp<AMessage> ¶ms) { sp<AMessage> msg = new AMessage(kWhatSetParameters, this); msg->setMessage("params", params); msg->post(); } void NuPlayer::DecoderBase::setRenderer(const sp<Renderer> &renderer) { sp<AMessage> msg = new AMessage(kWhatSetRenderer, this); msg->setObject("renderer", renderer); Loading Loading @@ -123,6 +129,14 @@ void NuPlayer::DecoderBase::onMessageReceived(const sp<AMessage> &msg) { break; } case kWhatSetParameters: { sp<AMessage> params; CHECK(msg->findMessage("params", ¶ms)); onSetParameters(params); break; } case kWhatSetRenderer: { sp<RefBase> obj; Loading Loading
include/media/stagefright/ACodec.h +1 −0 Original line number Diff line number Diff line Loading @@ -192,6 +192,7 @@ private: List<sp<AMessage> > mDeferredQueue; bool mSentFormat; bool mIsVideo; bool mIsEncoder; bool mUseMetadataOnEncoderOutput; bool mShutdownInProgress; Loading
media/libmediaplayerservice/nuplayer/NuPlayer.cpp +19 −0 Original line number Diff line number Diff line Loading @@ -634,6 +634,17 @@ void NuPlayer::onMessageReceived(const sp<AMessage> &msg) { if (mRenderer != NULL) { mRenderer->setPlaybackRate(mPlaybackRate); } if (mVideoDecoder != NULL) { sp<MetaData> meta = getFileMeta(); int32_t rate; if (meta != NULL && meta->findInt32(kKeyFrameRate, &rate) && rate > 0) { sp<AMessage> params = new AMessage(); params->setFloat("operating-rate", rate * mPlaybackRate); mVideoDecoder->setParameters(params); } } break; } Loading Loading @@ -1249,6 +1260,8 @@ status_t NuPlayer::instantiateDecoder(bool audio, sp<DecoderBase> *decoder) { return -EWOULDBLOCK; } format->setInt32("priority", 0 /* realtime */); if (!audio) { AString mime; CHECK(format->findString("mime", &mime)); Loading @@ -1265,6 +1278,12 @@ status_t NuPlayer::instantiateDecoder(bool audio, sp<DecoderBase> *decoder) { if (mSourceFlags & Source::FLAG_PROTECTED) { format->setInt32("protected", true); } sp<MetaData> meta = getFileMeta(); int32_t rate; if (meta != NULL && meta->findInt32(kKeyFrameRate, &rate) && rate > 0) { format->setFloat("operating-rate", rate * mPlaybackRate); } } if (audio) { Loading
media/libmediaplayerservice/nuplayer/NuPlayerDecoder.cpp +8 −0 Original line number Diff line number Diff line Loading @@ -252,6 +252,14 @@ void NuPlayer::Decoder::onConfigure(const sp<AMessage> &format) { mResumePending = false; } void NuPlayer::Decoder::onSetParameters(const sp<AMessage> ¶ms) { if (mCodec == NULL) { ALOGW("onSetParameters called before codec is created."); return; } mCodec->setParameters(params); } void NuPlayer::Decoder::onSetRenderer(const sp<Renderer> &renderer) { bool hadNoRenderer = (mRenderer == NULL); mRenderer = renderer; Loading
media/libmediaplayerservice/nuplayer/NuPlayerDecoder.h +1 −0 Original line number Diff line number Diff line Loading @@ -40,6 +40,7 @@ protected: virtual void onMessageReceived(const sp<AMessage> &msg); virtual void onConfigure(const sp<AMessage> &format); virtual void onSetParameters(const sp<AMessage> ¶ms); virtual void onSetRenderer(const sp<Renderer> &renderer); virtual void onGetInputBuffers(Vector<sp<ABuffer> > *dstBuffers); virtual void onResume(bool notifyComplete); Loading
media/libmediaplayerservice/nuplayer/NuPlayerDecoderBase.cpp +14 −0 Original line number Diff line number Diff line Loading @@ -70,6 +70,12 @@ void NuPlayer::DecoderBase::init() { mDecoderLooper->registerHandler(this); } void NuPlayer::DecoderBase::setParameters(const sp<AMessage> ¶ms) { sp<AMessage> msg = new AMessage(kWhatSetParameters, this); msg->setMessage("params", params); msg->post(); } void NuPlayer::DecoderBase::setRenderer(const sp<Renderer> &renderer) { sp<AMessage> msg = new AMessage(kWhatSetRenderer, this); msg->setObject("renderer", renderer); Loading Loading @@ -123,6 +129,14 @@ void NuPlayer::DecoderBase::onMessageReceived(const sp<AMessage> &msg) { break; } case kWhatSetParameters: { sp<AMessage> params; CHECK(msg->findMessage("params", ¶ms)); onSetParameters(params); break; } case kWhatSetRenderer: { sp<RefBase> obj; Loading