Loading media/libstagefright/MediaCodec.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -2955,8 +2955,8 @@ status_t MediaCodec::onReleaseOutputBuffer(const sp<AMessage> &msg) { if (mSoftRenderer != NULL) { std::list<FrameRenderTracker::Info> doneFrames = mSoftRenderer->render( buffer->data(), buffer->size(), mediaTimeUs, renderTimeNs, NULL, buffer->format()); buffer->data(), buffer->size(), mediaTimeUs, renderTimeNs, mPortBuffers[kPortIndexOutput].size(), buffer->format()); // if we are running, notify rendered frames if (!doneFrames.empty() && mState == STARTED && mOnFrameRenderedNotification != NULL) { Loading media/libstagefright/codecs/on2/dec/SoftVPX.h +1 −1 Original line number Diff line number Diff line Loading @@ -44,7 +44,7 @@ protected: private: enum { kNumBuffers = 4 kNumBuffers = 16 }; enum { Loading media/libstagefright/colorconversion/SoftwareRenderer.cpp +13 −6 Original line number Diff line number Diff line Loading @@ -60,7 +60,8 @@ SoftwareRenderer::~SoftwareRenderer() { mConverter = NULL; } void SoftwareRenderer::resetFormatIfChanged(const sp<AMessage> &format) { void SoftwareRenderer::resetFormatIfChanged( const sp<AMessage> &format, size_t numOutputBuffers) { CHECK(format != NULL); int32_t colorFormatNew; Loading Loading @@ -168,7 +169,7 @@ void SoftwareRenderer::resetFormatIfChanged(const sp<AMessage> &format) { CHECK_EQ(0, native_window_set_usage( mNativeWindow.get(), GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_OFTEN GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_RARELY | GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_EXTERNAL_DISP)); CHECK_EQ(0, Loading @@ -184,6 +185,11 @@ void SoftwareRenderer::resetFormatIfChanged(const sp<AMessage> &format) { CHECK_EQ(0, native_window_set_buffers_format( mNativeWindow.get(), halFormat)); if (OK != native_window_set_buffer_count( mNativeWindow.get(), numOutputBuffers + 4)) { ALOGE("Failed to set native window buffer count to (%zu + 4)", numOutputBuffers); } // NOTE: native window uses extended right-bottom coordinate android_native_rect_t crop; Loading Loading @@ -219,8 +225,8 @@ void SoftwareRenderer::clearTracker() { std::list<FrameRenderTracker::Info> SoftwareRenderer::render( const void *data, size_t , int64_t mediaTimeUs, nsecs_t renderTimeNs, void* /*platformPrivate*/, const sp<AMessage>& format) { resetFormatIfChanged(format); size_t numOutputBuffers, const sp<AMessage>& format) { resetFormatIfChanged(format, numOutputBuffers); FrameRenderTracker::Info *info = NULL; ANativeWindowBuffer *buf; Loading @@ -243,8 +249,9 @@ std::list<FrameRenderTracker::Info> SoftwareRenderer::render( Rect bounds(mCropWidth, mCropHeight); void *dst; CHECK_EQ(0, mapper.lock( buf->handle, GRALLOC_USAGE_SW_WRITE_OFTEN, bounds, &dst)); CHECK_EQ(0, mapper.lock(buf->handle, GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_RARELY, bounds, &dst)); // TODO move the other conversions also into ColorConverter, and // fix cropping issues (when mCropLeft/Top != 0 or mWidth != mCropWidth) Loading media/libstagefright/include/SoftwareRenderer.h +4 −3 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ public: std::list<FrameRenderTracker::Info> render( const void *data, size_t size, int64_t mediaTimeUs, nsecs_t renderTimeNs, void *platformPrivate, const sp<AMessage> &format); size_t numOutputBuffers, const sp<AMessage> &format); void clearTracker(); private: Loading @@ -59,10 +59,11 @@ private: HDRStaticInfo mHDRStaticInfo; FrameRenderTracker mRenderTracker; void resetFormatIfChanged( const sp<AMessage> &format, size_t numOutputBuffers); SoftwareRenderer(const SoftwareRenderer &); SoftwareRenderer &operator=(const SoftwareRenderer &); void resetFormatIfChanged(const sp<AMessage> &format); }; } // namespace android Loading media/libstagefright/omx/SimpleSoftOMXComponent.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ SimpleSoftOMXComponent::SimpleSoftOMXComponent( mLooper->start( false, // runOnCallingThread false, // canCallJava ANDROID_PRIORITY_FOREGROUND); ANDROID_PRIORITY_AUDIO); } void SimpleSoftOMXComponent::prepareForDestruction() { Loading Loading
media/libstagefright/MediaCodec.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -2955,8 +2955,8 @@ status_t MediaCodec::onReleaseOutputBuffer(const sp<AMessage> &msg) { if (mSoftRenderer != NULL) { std::list<FrameRenderTracker::Info> doneFrames = mSoftRenderer->render( buffer->data(), buffer->size(), mediaTimeUs, renderTimeNs, NULL, buffer->format()); buffer->data(), buffer->size(), mediaTimeUs, renderTimeNs, mPortBuffers[kPortIndexOutput].size(), buffer->format()); // if we are running, notify rendered frames if (!doneFrames.empty() && mState == STARTED && mOnFrameRenderedNotification != NULL) { Loading
media/libstagefright/codecs/on2/dec/SoftVPX.h +1 −1 Original line number Diff line number Diff line Loading @@ -44,7 +44,7 @@ protected: private: enum { kNumBuffers = 4 kNumBuffers = 16 }; enum { Loading
media/libstagefright/colorconversion/SoftwareRenderer.cpp +13 −6 Original line number Diff line number Diff line Loading @@ -60,7 +60,8 @@ SoftwareRenderer::~SoftwareRenderer() { mConverter = NULL; } void SoftwareRenderer::resetFormatIfChanged(const sp<AMessage> &format) { void SoftwareRenderer::resetFormatIfChanged( const sp<AMessage> &format, size_t numOutputBuffers) { CHECK(format != NULL); int32_t colorFormatNew; Loading Loading @@ -168,7 +169,7 @@ void SoftwareRenderer::resetFormatIfChanged(const sp<AMessage> &format) { CHECK_EQ(0, native_window_set_usage( mNativeWindow.get(), GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_OFTEN GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_RARELY | GRALLOC_USAGE_HW_TEXTURE | GRALLOC_USAGE_EXTERNAL_DISP)); CHECK_EQ(0, Loading @@ -184,6 +185,11 @@ void SoftwareRenderer::resetFormatIfChanged(const sp<AMessage> &format) { CHECK_EQ(0, native_window_set_buffers_format( mNativeWindow.get(), halFormat)); if (OK != native_window_set_buffer_count( mNativeWindow.get(), numOutputBuffers + 4)) { ALOGE("Failed to set native window buffer count to (%zu + 4)", numOutputBuffers); } // NOTE: native window uses extended right-bottom coordinate android_native_rect_t crop; Loading Loading @@ -219,8 +225,8 @@ void SoftwareRenderer::clearTracker() { std::list<FrameRenderTracker::Info> SoftwareRenderer::render( const void *data, size_t , int64_t mediaTimeUs, nsecs_t renderTimeNs, void* /*platformPrivate*/, const sp<AMessage>& format) { resetFormatIfChanged(format); size_t numOutputBuffers, const sp<AMessage>& format) { resetFormatIfChanged(format, numOutputBuffers); FrameRenderTracker::Info *info = NULL; ANativeWindowBuffer *buf; Loading @@ -243,8 +249,9 @@ std::list<FrameRenderTracker::Info> SoftwareRenderer::render( Rect bounds(mCropWidth, mCropHeight); void *dst; CHECK_EQ(0, mapper.lock( buf->handle, GRALLOC_USAGE_SW_WRITE_OFTEN, bounds, &dst)); CHECK_EQ(0, mapper.lock(buf->handle, GRALLOC_USAGE_SW_READ_NEVER | GRALLOC_USAGE_SW_WRITE_RARELY, bounds, &dst)); // TODO move the other conversions also into ColorConverter, and // fix cropping issues (when mCropLeft/Top != 0 or mWidth != mCropWidth) Loading
media/libstagefright/include/SoftwareRenderer.h +4 −3 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ public: std::list<FrameRenderTracker::Info> render( const void *data, size_t size, int64_t mediaTimeUs, nsecs_t renderTimeNs, void *platformPrivate, const sp<AMessage> &format); size_t numOutputBuffers, const sp<AMessage> &format); void clearTracker(); private: Loading @@ -59,10 +59,11 @@ private: HDRStaticInfo mHDRStaticInfo; FrameRenderTracker mRenderTracker; void resetFormatIfChanged( const sp<AMessage> &format, size_t numOutputBuffers); SoftwareRenderer(const SoftwareRenderer &); SoftwareRenderer &operator=(const SoftwareRenderer &); void resetFormatIfChanged(const sp<AMessage> &format); }; } // namespace android Loading
media/libstagefright/omx/SimpleSoftOMXComponent.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -41,7 +41,7 @@ SimpleSoftOMXComponent::SimpleSoftOMXComponent( mLooper->start( false, // runOnCallingThread false, // canCallJava ANDROID_PRIORITY_FOREGROUND); ANDROID_PRIORITY_AUDIO); } void SimpleSoftOMXComponent::prepareForDestruction() { Loading