diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-10-03 12:37:59 +0300 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-10-03 12:42:55 +0300 |
commit | 3ae05a32c0b9dcc4a83463c51f1abf5289cb4fe9 (patch) | |
tree | 3ec881f09ddf6b01eb3e21019e8f65f4ac085afc | |
parent | 2d26d172c477c2ea22c4603c6f6c5ba5027f8c80 (diff) |
kmscapture: clean up fb handling
-rw-r--r-- | utils/kmscapture.cpp | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/utils/kmscapture.cpp b/utils/kmscapture.cpp index c72d38c..1a9b51b 100644 --- a/utils/kmscapture.cpp +++ b/utils/kmscapture.cpp @@ -43,8 +43,7 @@ private: Crtc* m_crtc; Plane* m_plane; BufferProvider m_buffer_provider; - vector<DumbFramebuffer*> m_fb; /* framebuffers for DRM buffers */ - vector<ExtFramebuffer*> m_extfb; /* framebuffers for V4L2 buffers */ + vector<Framebuffer*> m_fb; int m_prev_fb_index; uint32_t m_in_width, m_in_height; /* camera capture resolution */ /* image properties for display */ @@ -161,11 +160,10 @@ CameraPipeline::CameraPipeline(int cam_fd, Card& card, Crtc *crtc, Plane* plane, v4lbuf.memory = v4l_mem; for (unsigned i = 0; i < CAMERA_BUF_QUEUE_SIZE; i++) { - DumbFramebuffer *fb = NULL; - ExtFramebuffer *extfb = NULL; + Framebuffer *fb; if (m_buffer_provider == BufferProvider::V4L2) - extfb = GetExtFrameBuffer(card, i, pixfmt); + fb = GetExtFrameBuffer(card, i, pixfmt); else fb = new DumbFramebuffer(card, m_in_width, m_in_height, pixfmt); @@ -176,10 +174,7 @@ CameraPipeline::CameraPipeline(int cam_fd, Card& card, Crtc *crtc, Plane* plane, r = ioctl(m_fd, VIDIOC_QBUF, &v4lbuf); ASSERT(r == 0); - if (m_buffer_provider == BufferProvider::V4L2) - m_extfb.push_back(extfb); - else - m_fb.push_back(fb); + m_fb.push_back(fb); } m_plane = plane; @@ -188,11 +183,7 @@ CameraPipeline::CameraPipeline(int cam_fd, Card& card, Crtc *crtc, Plane* plane, // set the FB when page flipping AtomicReq req(card); - Framebuffer *fb; - if (m_buffer_provider == BufferProvider::V4L2) - fb = m_extfb[0]; - else - fb = m_fb[0]; + Framebuffer *fb = m_fb[0]; req.add(m_plane, "CRTC_ID", m_crtc->id()); req.add(m_plane, "FB_ID", fb->id()); @@ -216,9 +207,6 @@ CameraPipeline::~CameraPipeline() for (unsigned i = 0; i < m_fb.size(); i++) delete m_fb[i]; - for (unsigned i = 0; i < m_extfb.size(); i++) - delete m_extfb[i]; - ::close(m_fd); } @@ -251,11 +239,7 @@ void CameraPipeline::show_next_frame(AtomicReq& req) unsigned fb_index = v4l2buf.index; - Framebuffer *fb; - if (m_buffer_provider == BufferProvider::V4L2) - fb = m_extfb[fb_index]; - else - fb = m_fb[fb_index]; + Framebuffer *fb = m_fb[fb_index]; req.add(m_plane, "FB_ID", fb->id()); |