{"id":3856,"url":"https://patchwork.libcamera.org/api/1.1/covers/3856/?format=json","web_url":"https://patchwork.libcamera.org/cover/3856/","project":{"id":1,"url":"https://patchwork.libcamera.org/api/1.1/projects/1/?format=json","name":"libcamera","link_name":"libcamera","list_id":"libcamera_core","list_email":"libcamera-devel@lists.libcamera.org","web_url":"","scm_url":"","webscm_url":""},"msgid":"<20200526075203.4503-1-show.liu@linaro.org>","date":"2020-05-26T07:52:02","name":"[libcamera-devel,RFC,v2,0/1] qcam: Render YUV formats frame by OpenGL shader","submitter":{"id":24,"url":"https://patchwork.libcamera.org/api/1.1/people/24/?format=json","name":"Show Liu","email":"show.liu@linaro.org"},"mbox":"https://patchwork.libcamera.org/cover/3856/mbox/","series":[{"id":928,"url":"https://patchwork.libcamera.org/api/1.1/series/928/?format=json","web_url":"https://patchwork.libcamera.org/project/libcamera/list/?series=928","date":"2020-05-26T07:52:02","name":"qcam: Render YUV formats frame by OpenGL shader","version":2,"mbox":"https://patchwork.libcamera.org/series/928/mbox/"}],"comments":"https://patchwork.libcamera.org/api/covers/3856/comments/","headers":{"Return-Path":"<show.liu@linaro.org>","Received":["from mail-pl1-x644.google.com (mail-pl1-x644.google.com\n\t[IPv6:2607:f8b0:4864:20::644])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id 5CB55603D1\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 May 2020 09:52:23 +0200 (CEST)","by mail-pl1-x644.google.com with SMTP id bh7so1411728plb.11\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tTue, 26 May 2020 00:52:23 -0700 (PDT)","from localhost.localdomain (211-20-20-223.HINET-IP.hinet.net.\n\t[211.20.20.223]) by smtp.gmail.com with ESMTPSA id\n\tv5sm14991091pjy.4.2020.05.26.00.52.19\n\t(version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n\tTue, 26 May 2020 00:52:20 -0700 (PDT)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (2048-bit key; \n\tunprotected) header.d=linaro.org\n\theader.i=@linaro.org header.b=\"kt33H34T\"; \n\tdkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google;\n\th=from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=A9M8bomYEeA6PoIdyhb1OUTwEt6lk1Iv+oOzb1cluQw=;\n\tb=kt33H34T9WiiG2x7N+bDWz/xwzTTs5cvsX39E91NVTqKWjesUcaI7uTcc7Lm0U/b5Y\n\tnjR9VPmcXOc6nwSDTrltpoT56VsG10LZbO7oYxySXMFBr8dBn9zMT2WjP4AkSW34Y5EF\n\tZcERCFUeVLAQyA4KagUY7VNlCgAHM1f+VpAmiXNII8vQ43OKKFE04jC0vHDM8Eo494p9\n\tjYxmYT23f10brXNecT83o5D806WQcldnjUnv660yYSKwdznUp2zqv3c6u87AW3N9ujgh\n\tYJrf/Pw61HrOXZz43AlWdgR/2LqhFfmzU92y2jwVUcM0nkirxfry7fPKwawCorcpy0kq\n\tpTeQ==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n\td=1e100.net; s=20161025;\n\th=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version\n\t:content-transfer-encoding;\n\tbh=A9M8bomYEeA6PoIdyhb1OUTwEt6lk1Iv+oOzb1cluQw=;\n\tb=tKTgGBo/2kg4IA9HfnMxF/bmZBQwZcapooBt3kkwn6EXdpI0Lt0aM7cYq4SzuO3u+D\n\tYpjSntKC3otrjNjhSCQ33Cz1k92/aSu6ZMm3cZxaaiMupCqi7Kxi5K2+YNRL7j6ldf5b\n\tWSvQjqPNiQ07e1Aj2FcS62HYeITN3tP6Tej5EPcH9AmGq1vA69/rDdWzMGMUq38qcsuu\n\tMo/skmMp1SApwFe3i4BvXVrwQeUEy/BhDT3sYk6WLq+ElIjQL/m6kdXSbr4GvVOJ7Cb0\n\t5YG6dYLtIYc5IsQg79HGrWqcWegrzfcVCSIqqu9Dpwia2T4VwovunqlLq+ZeN14iP2Bo\n\twZug==","X-Gm-Message-State":"AOAM532d3Nz7fGV5ZlOBtS2NFE+icBKbMx3gS7V+mMohgnfUfI4Hum4h\n\tS6W/fpnUTMZobGgWRyo7uEkirLg5+2eguQ==","X-Google-Smtp-Source":"ABdhPJwAilPIFMAqbulEk2NiUxxDxFAFo7Xnlbs7OWYN0CQ6r10ibEWXf3mbz54KjsHwdyUJ+VVgyQ==","X-Received":"by 2002:a17:902:a60a:: with SMTP id\n\tu10mr30411055plq.249.1590479541176; \n\tTue, 26 May 2020 00:52:21 -0700 (PDT)","From":"Show Liu <show.liu@linaro.org>","To":"libcamera-devel@lists.libcamera.org","Date":"Tue, 26 May 2020 15:52:02 +0800","Message-Id":"<20200526075203.4503-1-show.liu@linaro.org>","X-Mailer":"git-send-email 2.20.1","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","Subject":"[libcamera-devel] [RFC v2] [PATCH 0/1] qcam: Render YUV formats\n\tframe by OpenGL shader","X-BeenThere":"libcamera-devel@lists.libcamera.org","X-Mailman-Version":"2.1.29","Precedence":"list","List-Id":"<libcamera-devel.lists.libcamera.org>","List-Unsubscribe":"<https://lists.libcamera.org/options/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=unsubscribe>","List-Archive":"<https://lists.libcamera.org/pipermail/libcamera-devel/>","List-Post":"<mailto:libcamera-devel@lists.libcamera.org>","List-Help":"<mailto:libcamera-devel-request@lists.libcamera.org?subject=help>","List-Subscribe":"<https://lists.libcamera.org/listinfo/libcamera-devel>,\n\t<mailto:libcamera-devel-request@lists.libcamera.org?subject=subscribe>","X-List-Received-Date":"Tue, 26 May 2020 07:52:24 -0000"},"content":"This patch is to render the YUV(NV formats family) frame by OpenGL shader.\nI rework viewfinder class and give viewfinder handle abstract class as interface \nand make it able to handle viewfinder and viewfinderGL both.\n\nI tested on rockpi4b with kernel 5.7rc4+imx219 camera module.\n\nShow Liu (1):\n  qcam: Render YUV formats frame by OpenGL shader\n\n src/qcam/fshader.h        |  86 ++++++++++\n src/qcam/main.cpp         |   2 +\n src/qcam/main_window.cpp  |  19 ++-\n src/qcam/main_window.h    |   3 +-\n src/qcam/meson.build      |   2 +\n src/qcam/viewfinder.cpp   |  18 +-\n src/qcam/viewfinder.h     |  23 ++-\n src/qcam/viewfinderGL.cpp | 346 ++++++++++++++++++++++++++++++++++++++\n src/qcam/viewfinderGL.h   | 102 +++++++++++\n 9 files changed, 587 insertions(+), 14 deletions(-)\n create mode 100644 src/qcam/fshader.h\n create mode 100644 src/qcam/viewfinderGL.cpp\n create mode 100644 src/qcam/viewfinderGL.h"}