From 3ae05a32c0b9dcc4a83463c51f1abf5289cb4fe9 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Tue, 3 Oct 2017 12:37:59 +0300 Subject: kmscapture: clean up fb handling --- utils/kmscapture.cpp | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) (limited to 'utils/kmscapture.cpp') 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 m_fb; /* framebuffers for DRM buffers */ - vector m_extfb; /* framebuffers for V4L2 buffers */ + vector 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()); -- cgit v1.2.3