Loading media/libstagefright/renderfright/gl/GLESRenderEngine.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -404,7 +404,7 @@ GLESRenderEngine::GLESRenderEngine(const RenderEngineCreationArgs& args, EGLDisp } mImageManager = std::make_unique<ImageManager>(this); mImageManager->initThread(); mImageManager->initThread(args.realtime); mDrawingBuffer = createFramebuffer(); sp<GraphicBuffer> buf = new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBA_8888, 1, Loading media/libstagefright/renderfright/gl/ImageManager.cpp +8 −6 Original line number Diff line number Diff line Loading @@ -32,9 +32,10 @@ namespace gl { ImageManager::ImageManager(GLESRenderEngine* engine) : mEngine(engine) {} void ImageManager::initThread() { void ImageManager::initThread(bool realtime) { mThread = std::thread([this]() { threadMain(); }); pthread_setname_np(mThread.native_handle(), "ImageManager"); if (realtime) { // Use SCHED_FIFO to minimize jitter struct sched_param param = {0}; param.sched_priority = 2; Loading @@ -42,6 +43,7 @@ void ImageManager::initThread() { ALOGE("Couldn't set SCHED_FIFO for ImageManager"); } } } ImageManager::~ImageManager() { { Loading media/libstagefright/renderfright/gl/ImageManager.h +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ public: // Starts the background thread for the ImageManager // We need this to guarantee that the class is fully-constructed before the // thread begins running. void initThread(); void initThread(bool realtime); void cacheAsync(const sp<GraphicBuffer>& buffer, const std::shared_ptr<Barrier>& barrier) EXCLUDES(mMutex); status_t cache(const sp<GraphicBuffer>& buffer); Loading media/libstagefright/renderfright/include/renderengine/RenderEngine.h +12 −3 Original line number Diff line number Diff line Loading @@ -206,6 +206,7 @@ struct RenderEngineCreationArgs { bool supportsBackgroundBlur; RenderEngine::ContextPriority contextPriority; RenderEngine::RenderEngineType renderEngineType; bool realtime; struct Builder; Loading @@ -215,7 +216,8 @@ private: bool _enableProtectedContext, bool _precacheToneMapperShaderOnly, bool _supportsBackgroundBlur, RenderEngine::ContextPriority _contextPriority, RenderEngine::RenderEngineType _renderEngineType) RenderEngine::RenderEngineType _renderEngineType, bool _realtime) : pixelFormat(_pixelFormat), imageCacheSize(_imageCacheSize), useColorManagement(_useColorManagement), Loading @@ -223,7 +225,8 @@ private: precacheToneMapperShaderOnly(_precacheToneMapperShaderOnly), supportsBackgroundBlur(_supportsBackgroundBlur), contextPriority(_contextPriority), renderEngineType(_renderEngineType) {} renderEngineType(_renderEngineType), realtime(_realtime) {} RenderEngineCreationArgs() = delete; }; Loading Loading @@ -262,10 +265,15 @@ struct RenderEngineCreationArgs::Builder { this->renderEngineType = renderEngineType; return *this; } Builder& setRealtime(bool realtime) { this->realtime = realtime; return *this; } RenderEngineCreationArgs build() const { return RenderEngineCreationArgs(pixelFormat, imageCacheSize, useColorManagement, enableProtectedContext, precacheToneMapperShaderOnly, supportsBackgroundBlur, contextPriority, renderEngineType); supportsBackgroundBlur, contextPriority, renderEngineType, realtime); } private: Loading @@ -278,6 +286,7 @@ private: bool supportsBackgroundBlur = false; RenderEngine::ContextPriority contextPriority = RenderEngine::ContextPriority::MEDIUM; RenderEngine::RenderEngineType renderEngineType = RenderEngine::RenderEngineType::GLES; bool realtime = true; }; class BindNativeBufferAsFramebuffer { Loading Loading
media/libstagefright/renderfright/gl/GLESRenderEngine.cpp +1 −1 Original line number Diff line number Diff line Loading @@ -404,7 +404,7 @@ GLESRenderEngine::GLESRenderEngine(const RenderEngineCreationArgs& args, EGLDisp } mImageManager = std::make_unique<ImageManager>(this); mImageManager->initThread(); mImageManager->initThread(args.realtime); mDrawingBuffer = createFramebuffer(); sp<GraphicBuffer> buf = new GraphicBuffer(1, 1, PIXEL_FORMAT_RGBA_8888, 1, Loading
media/libstagefright/renderfright/gl/ImageManager.cpp +8 −6 Original line number Diff line number Diff line Loading @@ -32,9 +32,10 @@ namespace gl { ImageManager::ImageManager(GLESRenderEngine* engine) : mEngine(engine) {} void ImageManager::initThread() { void ImageManager::initThread(bool realtime) { mThread = std::thread([this]() { threadMain(); }); pthread_setname_np(mThread.native_handle(), "ImageManager"); if (realtime) { // Use SCHED_FIFO to minimize jitter struct sched_param param = {0}; param.sched_priority = 2; Loading @@ -42,6 +43,7 @@ void ImageManager::initThread() { ALOGE("Couldn't set SCHED_FIFO for ImageManager"); } } } ImageManager::~ImageManager() { { Loading
media/libstagefright/renderfright/gl/ImageManager.h +1 −1 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ public: // Starts the background thread for the ImageManager // We need this to guarantee that the class is fully-constructed before the // thread begins running. void initThread(); void initThread(bool realtime); void cacheAsync(const sp<GraphicBuffer>& buffer, const std::shared_ptr<Barrier>& barrier) EXCLUDES(mMutex); status_t cache(const sp<GraphicBuffer>& buffer); Loading
media/libstagefright/renderfright/include/renderengine/RenderEngine.h +12 −3 Original line number Diff line number Diff line Loading @@ -206,6 +206,7 @@ struct RenderEngineCreationArgs { bool supportsBackgroundBlur; RenderEngine::ContextPriority contextPriority; RenderEngine::RenderEngineType renderEngineType; bool realtime; struct Builder; Loading @@ -215,7 +216,8 @@ private: bool _enableProtectedContext, bool _precacheToneMapperShaderOnly, bool _supportsBackgroundBlur, RenderEngine::ContextPriority _contextPriority, RenderEngine::RenderEngineType _renderEngineType) RenderEngine::RenderEngineType _renderEngineType, bool _realtime) : pixelFormat(_pixelFormat), imageCacheSize(_imageCacheSize), useColorManagement(_useColorManagement), Loading @@ -223,7 +225,8 @@ private: precacheToneMapperShaderOnly(_precacheToneMapperShaderOnly), supportsBackgroundBlur(_supportsBackgroundBlur), contextPriority(_contextPriority), renderEngineType(_renderEngineType) {} renderEngineType(_renderEngineType), realtime(_realtime) {} RenderEngineCreationArgs() = delete; }; Loading Loading @@ -262,10 +265,15 @@ struct RenderEngineCreationArgs::Builder { this->renderEngineType = renderEngineType; return *this; } Builder& setRealtime(bool realtime) { this->realtime = realtime; return *this; } RenderEngineCreationArgs build() const { return RenderEngineCreationArgs(pixelFormat, imageCacheSize, useColorManagement, enableProtectedContext, precacheToneMapperShaderOnly, supportsBackgroundBlur, contextPriority, renderEngineType); supportsBackgroundBlur, contextPriority, renderEngineType, realtime); } private: Loading @@ -278,6 +286,7 @@ private: bool supportsBackgroundBlur = false; RenderEngine::ContextPriority contextPriority = RenderEngine::ContextPriority::MEDIUM; RenderEngine::RenderEngineType renderEngineType = RenderEngine::RenderEngineType::GLES; bool realtime = true; }; class BindNativeBufferAsFramebuffer { Loading