[libcamera-devel] [PATCH v6 0/4] qcam: accelerate format conversion by OpenGL shader

Show Liu show.liu at linaro.org
Fri Sep 11 10:55:10 CEST 2020


Hi Laurent,

  This is patch set v6 for qcam accelerated format conversion by OpenGL shader.
  
The changes mainly based on your comments on v5, including:
  * New coordinates matrix for vertex and texture mapping 
  * Move the NV 3 planes fragment shader into one file, and the YUV420 and YVU420 format 
    use the same one.
  * And this version is always renew the fragment shader when set format to avoid
    if the format changed.
  * And of course refine some parts you mentioned.

Please let me know if I still lose something.

Known issue:
  * The on/off issue is still there, not fixed yet.

Thanks,
Show 

Show Liu (4):
  qcam: add OpenGL shader code as Qt resource
  qcam: new viewfinder hierarchy
  qcam: add viewfinderGL class to accelerate the format convert
  qcam: add additional command line option to select the render type

 meson.build                                   |   1 +
 src/qcam/assets/shader/NV_2_planes_UV_f.glsl  |  32 ++
 src/qcam/assets/shader/NV_2_planes_VU_f.glsl  |  32 ++
 src/qcam/assets/shader/NV_3_planes_f.glsl     |  33 ++
 src/qcam/assets/shader/NV_vertex_shader.glsl  |  16 +
 src/qcam/assets/shader/shaders.qrc            |   9 +
 src/qcam/main.cpp                             |   3 +
 src/qcam/main_window.cpp                      |  31 +-
 src/qcam/main_window.h                        |   3 +
 src/qcam/meson.build                          |  20 +-
 src/qcam/viewfinder.h                         |  57 +--
 src/qcam/viewfinder_gl.cpp                    | 456 ++++++++++++++++++
 src/qcam/viewfinder_gl.h                      |  96 ++++
 .../{viewfinder.cpp => viewfinder_qt.cpp}     |  24 +-
 src/qcam/viewfinder_qt.h                      |  64 +++
 15 files changed, 812 insertions(+), 65 deletions(-)
 create mode 100644 src/qcam/assets/shader/NV_2_planes_UV_f.glsl
 create mode 100644 src/qcam/assets/shader/NV_2_planes_VU_f.glsl
 create mode 100644 src/qcam/assets/shader/NV_3_planes_f.glsl
 create mode 100644 src/qcam/assets/shader/NV_vertex_shader.glsl
 create mode 100644 src/qcam/assets/shader/shaders.qrc
 create mode 100644 src/qcam/viewfinder_gl.cpp
 create mode 100644 src/qcam/viewfinder_gl.h
 rename src/qcam/{viewfinder.cpp => viewfinder_qt.cpp} (86%)
 create mode 100644 src/qcam/viewfinder_qt.h

-- 
2.20.1



More information about the libcamera-devel mailing list