From 387fad275e43a0e3c7fe06f76f0e168b5ffffa51 Mon Sep 17 00:00:00 2001 From: Kateryna Kostiuk <kateryna.kostiuk@savoirfairelinux.com> Date: Wed, 17 Jul 2019 13:01:35 -0400 Subject: [PATCH] avmodel: fix using avframe Change-Id: I13386f241c489bb6896d09ee9d21172d1880b6d6 --- src/api/newvideo.h | 2 +- src/avmodel.cpp | 9 ++++++--- src/newvideo.cpp | 6 +++--- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/api/newvideo.h b/src/api/newvideo.h index 0d1fcaf5..c3582003 100644 --- a/src/api/newvideo.h +++ b/src/api/newvideo.h @@ -103,7 +103,7 @@ class LIB_EXPORT Renderer : public QObject { Q_OBJECT public: Renderer(const std::string& id, Settings videoSettings, - const std::string& shmPath = ""); + const std::string& shmPath = "", const bool useAVFrame = false); ~Renderer(); /** diff --git a/src/avmodel.cpp b/src/avmodel.cpp index 00e871e6..5a6cd923 100644 --- a/src/avmodel.cpp +++ b/src/avmodel.cpp @@ -67,6 +67,7 @@ public: std::map<std::string, std::unique_ptr<video::Renderer>> renderers_; // store if a renderers is for a finished call std::map<std::string, bool> finishedRenderers_; + bool useAVFrame_ = false; #ifndef ENABLE_LIBWRAP // TODO: Init Video Renderers from daemon (see: https://git.ring.cx/savoirfairelinux/ring-daemon/issues/59) @@ -441,9 +442,11 @@ AVModel::startLocalRecorder(const bool& audioOnly) const void AVModel::useAVFrame(bool useAVFrame) { + pimpl_->useAVFrame_ = useAVFrame; for (auto it = pimpl_->renderers_.cbegin(); it != pimpl_->renderers_.cend(); ++it) { - it->second->useAVFrame(useAVFrame); + it->second->useAVFrame(pimpl_->useAVFrame_); } + //TODO remove when switch to new av model VideoRendererManager::instance().useAVFrame(useAVFrame); } @@ -587,7 +590,7 @@ AVModelPimpl::init() // add preview renderer renderers_.insert(std::make_pair(video::PREVIEW_RENDERER_ID, std::make_unique<video::Renderer>(video::PREVIEW_RENDERER_ID, - linked_.getDeviceSettings(linked_.getDefaultDeviceName())))); + linked_.getDeviceSettings(linked_.getDefaultDeviceName()),"", useAVFrame_))); #ifndef ENABLE_LIBWRAP SIZE_RENDERER = renderers_.size(); #endif @@ -659,7 +662,7 @@ AVModelPimpl::startedDecoding(const std::string& id, const std::string& shmPath, video::Settings settings; settings.size = res; renderers_.insert(std::make_pair(id, - std::make_unique<video::Renderer>(id.c_str(), settings, shmPath))); + std::make_unique<video::Renderer>(id.c_str(), settings, shmPath, useAVFrame_))); finishedRenderers_.insert(std::make_pair(id, false)); #ifndef ENABLE_LIBWRAP SIZE_RENDERER = renderers_.size(); diff --git a/src/newvideo.cpp b/src/newvideo.cpp index 0d09fdfc..c7abbca5 100644 --- a/src/newvideo.cpp +++ b/src/newvideo.cpp @@ -38,7 +38,7 @@ class RendererPimpl: public QObject public: RendererPimpl(Renderer& linked, const std::string& id, Settings videoSettings, const std::string& shmPath, - bool useAVFrame=false); + const bool useAVFrame); ~RendererPimpl(); Renderer& linked; @@ -77,8 +77,8 @@ namespace video { Renderer::Renderer(const std::string& id, Settings videoSettings, - const std::string& shmPath) -: pimpl_(std::make_unique<RendererPimpl>(*this, id, videoSettings, shmPath)) + const std::string& shmPath, const bool useAVFrame) +: pimpl_(std::make_unique<RendererPimpl>(*this, id, videoSettings, shmPath, useAVFrame)) {} Renderer::~Renderer() -- GitLab