[{"id":29463,"web_url":"https://patchwork.libcamera.org/comment/29463/","msgid":"<d475cd23-7cdf-4ab2-9fc3-7c56acbe2f73@ideasonboard.com>","date":"2024-05-08T21:06:14","subject":"Re: [PATCH v1 2/2] libcamera: Drop remaining file name from header\n\tcomment blocks","submitter":{"id":156,"url":"https://patchwork.libcamera.org/api/people/156/","name":"Dan Scally","email":"dan.scally@ideasonboard.com"},"content":"Hi Laurent\n\nOn 08/05/2024 21:59, Laurent Pinchart wrote:\n> Source files in libcamera start by a comment block header, which\n> includes the file name and a one-line description of the file contents.\n> While the latter is useful to get a quick overview of the file contents\n> at a glance, the former is mostly a source of inconvenience. The name in\n> the comments can easily get out of sync with the file name when files\n> are renamed, and copy & paste during development have often lead to\n> incorrect names being used to start with.\n>\n> Readers of the source code are expected to know which file they're\n> looking it. Drop the file name from the header comment blocks in all\n> remaining locations that were not caught by the automated script as they\n> are out of sync with the file name.\n>\n> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n\n\nReviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n\n\nBut one heads up below...\n\n> ---\n>   include/libcamera/base/thread_annotations.h       | 2 +-\n>   include/libcamera/fence.h                         | 2 +-\n>   src/android/camera_ops.cpp                        | 2 +-\n>   src/android/mm/cros_frame_buffer_allocator.cpp    | 3 +--\n>   src/android/mm/generic_frame_buffer_allocator.cpp | 2 +-\n>   src/apps/cam/sdl_sink.cpp                         | 2 +-\n>   src/apps/ipa-verify/main.cpp                      | 2 +-\n>   src/apps/lc-compliance/helpers/capture.cpp        | 2 +-\n>   src/apps/lc-compliance/helpers/capture.h          | 2 +-\n>   src/apps/qcam/format_converter.cpp                | 2 +-\n>   src/apps/qcam/format_converter.h                  | 2 +-\n>   src/apps/qcam/message_handler.h                   | 2 +-\n>   src/apps/qcam/viewfinder_gl.cpp                   | 2 +-\n>   src/apps/qcam/viewfinder_gl.h                     | 3 +--\n>   src/gstreamer/gstlibcamera-utils.cpp              | 2 +-\n>   src/gstreamer/gstlibcamera.cpp                    | 2 +-\n>   src/gstreamer/gstlibcameraprovider.cpp            | 2 +-\n>   src/ipa/ipu3/algorithms/agc.cpp                   | 2 +-\n>   src/ipa/ipu3/algorithms/blc.h                     | 2 +-\n>   src/ipa/rpi/controller/denoise_algorithm.h        | 2 +-\n>   src/ipa/rpi/controller/rpi/denoise.cpp            | 2 +-\n>   src/ipa/rpi/controller/tonemap_status.h           | 2 +-\n>   src/ipa/rpi/vc4/vc4.cpp                           | 2 +-\n>   src/libcamera/base/backtrace.cpp                  | 2 +-\n>   src/libcamera/camera_manager.cpp                  | 2 +-\n>   src/libcamera/delayed_controls.cpp                | 2 +-\n>   src/libcamera/pipeline/rkisp1/rkisp1_path.cpp     | 2 +-\n>   src/libcamera/pipeline/rkisp1/rkisp1_path.h       | 2 +-\n>   src/v4l2/v4l2_camera_file.cpp                     | 2 +-\n>   test/bayer-format.cpp                             | 2 +-\n>   test/byte-stream-buffer.cpp                       | 2 +-\n>   test/controls/control_info_map.cpp                | 2 +-\n>   test/gstreamer/gstreamer_device_provider_test.cpp | 2 +-\n>   test/gstreamer/gstreamer_test.h                   | 2 +-\n>   test/log/log_api.cpp                              | 2 +-\n>   test/object-delete.cpp                            | 2 +-\n>   test/shared-fd.cpp                                | 2 +-\n>   test/v4l2_videodevice/v4l2_videodevice_test.h     | 2 +-\n>   utils/gen-ipa-pub-key.py                          | 2 +-\n>   utils/rkisp1/rkisp1-capture.sh                    | 3 +--\n>   40 files changed, 40 insertions(+), 43 deletions(-)\n>\n> diff --git a/include/libcamera/base/thread_annotations.h b/include/libcamera/base/thread_annotations.h\n> index 25b3c7b6cf92..81930f0873dc 100644\n> --- a/include/libcamera/base/thread_annotations.h\n> +++ b/include/libcamera/base/thread_annotations.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Google Inc.\n>    *\n> - * thread_annotation.h - Macro of Clang thread safety analysis\n> + * Macro of Clang thread safety analysis\n>    */\n>   \n>   #pragma once\n> diff --git a/include/libcamera/fence.h b/include/libcamera/fence.h\n> index c0c916c264b4..598336cb61af 100644\n> --- a/include/libcamera/fence.h\n> +++ b/include/libcamera/fence.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Google Inc.\n>    *\n> - * internal/fence.h - Synchronization fence\n> + * Synchronization fence\n>    */\n>   \n>   #pragma once\n> diff --git a/src/android/camera_ops.cpp b/src/android/camera_ops.cpp\n> index 8a3cfa175ff5..ecaac5a31c64 100644\n> --- a/src/android/camera_ops.cpp\n> +++ b/src/android/camera_ops.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2019, Google Inc.\n>    *\n> - * camera_ops.h - Android Camera HAL Operations\n> + * Android Camera HAL Operations\n>    */\n>   \n>   #include \"camera_ops.h\"\n> diff --git a/src/android/mm/cros_frame_buffer_allocator.cpp b/src/android/mm/cros_frame_buffer_allocator.cpp\n> index 0a5c59f2a697..264c0d481272 100644\n> --- a/src/android/mm/cros_frame_buffer_allocator.cpp\n> +++ b/src/android/mm/cros_frame_buffer_allocator.cpp\n> @@ -2,8 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Google Inc.\n>    *\n> - * cros_frame_buffer.cpp - Allocate FrameBuffer for Chromium OS using\n> - * CameraBufferManager\n> + * Allocate FrameBuffer for Chromium OS using CameraBufferManager\n>    */\n>   \n>   #include <memory>\n> diff --git a/src/android/mm/generic_frame_buffer_allocator.cpp b/src/android/mm/generic_frame_buffer_allocator.cpp\n> index 7ecef2c669df..79625a9a3c75 100644\n> --- a/src/android/mm/generic_frame_buffer_allocator.cpp\n> +++ b/src/android/mm/generic_frame_buffer_allocator.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Google Inc.\n>    *\n> - * generic_camera_buffer.cpp - Allocate FrameBuffer using gralloc API\n> + * Allocate FrameBuffer using gralloc API\n>    */\n>   \n>   #include <dlfcn.h>\n> diff --git a/src/apps/cam/sdl_sink.cpp b/src/apps/cam/sdl_sink.cpp\n> index a2f4abc1ec8c..8355dd5ed56f 100644\n> --- a/src/apps/cam/sdl_sink.cpp\n> +++ b/src/apps/cam/sdl_sink.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2022, Ideas on Board Oy\n>    *\n> - * sdl_sink.h - SDL Sink\n> + * SDL Sink\n>    */\n>   \n>   #include \"sdl_sink.h\"\n> diff --git a/src/apps/ipa-verify/main.cpp b/src/apps/ipa-verify/main.cpp\n> index 76ba5073d25a..0903cd8512d3 100644\n> --- a/src/apps/ipa-verify/main.cpp\n> +++ b/src/apps/ipa-verify/main.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2023, Ideas on Board Oy\n>    *\n> - * ipa_verify.cpp - Verify signature on an IPA module\n> + * Verify signature on an IPA module\n>    */\n>   \n>   #include <iostream>\n> diff --git a/src/apps/lc-compliance/helpers/capture.cpp b/src/apps/lc-compliance/helpers/capture.cpp\n> index 5aab973f0392..90c1530baba8 100644\n> --- a/src/apps/lc-compliance/helpers/capture.cpp\n> +++ b/src/apps/lc-compliance/helpers/capture.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020-2021, Google Inc.\n>    *\n> - * simple_capture.cpp - Simple capture helper\n> + * Simple capture helper\n>    */\n>   \n>   #include \"capture.h\"\n> diff --git a/src/apps/lc-compliance/helpers/capture.h b/src/apps/lc-compliance/helpers/capture.h\n> index 0574ab1c7ac7..19b6927c62b4 100644\n> --- a/src/apps/lc-compliance/helpers/capture.h\n> +++ b/src/apps/lc-compliance/helpers/capture.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020-2021, Google Inc.\n>    *\n> - * simple_capture.h - Simple capture helper\n> + * Simple capture helper\n>    */\n>   \n>   #pragma once\n> diff --git a/src/apps/qcam/format_converter.cpp b/src/apps/qcam/format_converter.cpp\n> index de76b32c7ffd..32123493f905 100644\n> --- a/src/apps/qcam/format_converter.cpp\n> +++ b/src/apps/qcam/format_converter.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2019, Google Inc.\n>    *\n> - * format_convert.cpp - qcam - Convert buffer to RGB\n> + * Convert buffer to RGB\n>    */\n\n\nThis drops the \"qcam -\" as well as the \"format_convert.cpp\" - I think that's fine to do but I \nthought I'd mention it incase it was accidental\n\n>   \n>   #include \"format_converter.h\"\n> diff --git a/src/apps/qcam/format_converter.h b/src/apps/qcam/format_converter.h\n> index 37dbfae2d344..819a87a5b3f4 100644\n> --- a/src/apps/qcam/format_converter.h\n> +++ b/src/apps/qcam/format_converter.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2019, Google Inc.\n>    *\n> - * format_convert.h - qcam - Convert buffer to RGB\n> + * Convert buffer to RGB\n>    */\n>   \n>   #pragma once\n> diff --git a/src/apps/qcam/message_handler.h b/src/apps/qcam/message_handler.h\n> index 56294d37ce2f..92ef74d1e810 100644\n> --- a/src/apps/qcam/message_handler.h\n> +++ b/src/apps/qcam/message_handler.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>    *\n> - * message_handler.cpp - qcam - Log message handling\n> + * Log message handling\n>    */\n>   \n>   #pragma once\n> diff --git a/src/apps/qcam/viewfinder_gl.cpp b/src/apps/qcam/viewfinder_gl.cpp\n> index f83b99ad6272..9d2a69600db1 100644\n> --- a/src/apps/qcam/viewfinder_gl.cpp\n> +++ b/src/apps/qcam/viewfinder_gl.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Linaro\n>    *\n> - * viewfinderGL.cpp - OpenGL Viewfinder for rendering by OpenGL shader\n> + * OpenGL Viewfinder for rendering by OpenGL shader\n>    */\n>   \n>   #include \"viewfinder_gl.h\"\n> diff --git a/src/apps/qcam/viewfinder_gl.h b/src/apps/qcam/viewfinder_gl.h\n> index 68c2912df12f..23744b411c86 100644\n> --- a/src/apps/qcam/viewfinder_gl.h\n> +++ b/src/apps/qcam/viewfinder_gl.h\n> @@ -2,8 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Linaro\n>    *\n> - * viewfinder_GL.h - OpenGL Viewfinder for rendering by OpenGL shader\n> - *\n> + * OpenGL Viewfinder for rendering by OpenGL shader\n>    */\n>   \n>   #pragma once\n> diff --git a/src/gstreamer/gstlibcamera-utils.cpp b/src/gstreamer/gstlibcamera-utils.cpp\n> index 469ac8104739..e163ce4141b0 100644\n> --- a/src/gstreamer/gstlibcamera-utils.cpp\n> +++ b/src/gstreamer/gstlibcamera-utils.cpp\n> @@ -3,7 +3,7 @@\n>    * Copyright (C) 2020, Collabora Ltd.\n>    *     Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n>    *\n> - * gstlibcamera-utils.c - GStreamer libcamera Utility Function\n> + * GStreamer libcamera Utility Function\n>    */\n>   \n>   #include \"gstlibcamera-utils.h\"\n> diff --git a/src/gstreamer/gstlibcamera.cpp b/src/gstreamer/gstlibcamera.cpp\n> index 52388b5eaac0..bff989794836 100644\n> --- a/src/gstreamer/gstlibcamera.cpp\n> +++ b/src/gstreamer/gstlibcamera.cpp\n> @@ -3,7 +3,7 @@\n>    * Copyright (C) 2019, Collabora Ltd.\n>    *     Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n>    *\n> - * gstlibcamera.c - GStreamer plugin\n> + * GStreamer plugin\n>    */\n>   \n>   #include \"gstlibcameraprovider.h\"\n> diff --git a/src/gstreamer/gstlibcameraprovider.cpp b/src/gstreamer/gstlibcameraprovider.cpp\n> index ce3e0a08e904..4fb1b00771f0 100644\n> --- a/src/gstreamer/gstlibcameraprovider.cpp\n> +++ b/src/gstreamer/gstlibcameraprovider.cpp\n> @@ -3,7 +3,7 @@\n>    * Copyright (C) 2020, Collabora Ltd.\n>    *     Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>\n>    *\n> - * gstlibcameraprovider.c - GStreamer Device Provider\n> + * GStreamer Device Provider\n>    */\n>   \n>   #include <array>\n> diff --git a/src/ipa/ipu3/algorithms/agc.cpp b/src/ipa/ipu3/algorithms/agc.cpp\n> index c9b5548c4548..0e0114f6da44 100644\n> --- a/src/ipa/ipu3/algorithms/agc.cpp\n> +++ b/src/ipa/ipu3/algorithms/agc.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Ideas On Board\n>    *\n> - * ipu3_agc.cpp - AGC/AEC mean-based control algorithm\n> + * AGC/AEC mean-based control algorithm\n>    */\n>   \n>   #include \"agc.h\"\n> diff --git a/src/ipa/ipu3/algorithms/blc.h b/src/ipa/ipu3/algorithms/blc.h\n> index 292bf67b02ff..6274804548bb 100644\n> --- a/src/ipa/ipu3/algorithms/blc.h\n> +++ b/src/ipa/ipu3/algorithms/blc.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Google inc.\n>    *\n> - * black_correction.h - IPU3 Black Level Correction control\n> + * IPU3 Black Level Correction control\n>    */\n>   \n>   #pragma once\n> diff --git a/src/ipa/rpi/controller/denoise_algorithm.h b/src/ipa/rpi/controller/denoise_algorithm.h\n> index 444cbc259889..b9a2a33cd741 100644\n> --- a/src/ipa/rpi/controller/denoise_algorithm.h\n> +++ b/src/ipa/rpi/controller/denoise_algorithm.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Raspberry Pi Ltd\n>    *\n> - * denoise.h - Denoise control algorithm interface\n> + * Denoise control algorithm interface\n>    */\n>   #pragma once\n>   \n> diff --git a/src/ipa/rpi/controller/rpi/denoise.cpp b/src/ipa/rpi/controller/rpi/denoise.cpp\n> index 154ee604ddd0..ba851658d085 100644\n> --- a/src/ipa/rpi/controller/rpi/denoise.cpp\n> +++ b/src/ipa/rpi/controller/rpi/denoise.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2022 Raspberry Pi Ltd\n>    *\n> - * Denoise.cpp - Denoise (spatial, colour, temporal) control algorithm\n> + * Denoise (spatial, colour, temporal) control algorithm\n>    */\n>   #include \"denoise.h\"\n>   \n> diff --git a/src/ipa/rpi/controller/tonemap_status.h b/src/ipa/rpi/controller/tonemap_status.h\n> index 0e6399467869..41a7bf2ffa7c 100644\n> --- a/src/ipa/rpi/controller/tonemap_status.h\n> +++ b/src/ipa/rpi/controller/tonemap_status.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2022 Raspberry Pi Ltd\n>    *\n> - * hdr.h - Tonemap control algorithm status\n> + * Tonemap control algorithm status\n>    */\n>   #pragma once\n>   \n> diff --git a/src/ipa/rpi/vc4/vc4.cpp b/src/ipa/rpi/vc4/vc4.cpp\n> index d2159a512433..4fa4fbcf5fbd 100644\n> --- a/src/ipa/rpi/vc4/vc4.cpp\n> +++ b/src/ipa/rpi/vc4/vc4.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2019-2021, Raspberry Pi Ltd\n>    *\n> - * rpi.cpp - Raspberry Pi VC4/BCM2835 ISP IPA.\n> + * Raspberry Pi VC4/BCM2835 ISP IPA.\n>    */\n>   \n>   #include <string.h>\n> diff --git a/src/libcamera/base/backtrace.cpp b/src/libcamera/base/backtrace.cpp\n> index be30589d255e..0b04629c9322 100644\n> --- a/src/libcamera/base/backtrace.cpp\n> +++ b/src/libcamera/base/backtrace.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Ideas on Board Oy\n>    *\n> - * backtrace.h - Call stack backtraces\n> + * Call stack backtraces\n>    */\n>   \n>   #include <libcamera/base/backtrace.h>\n> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp\n> index 355f3adad68f..8837e6f8b6d0 100644\n> --- a/src/libcamera/camera_manager.cpp\n> +++ b/src/libcamera/camera_manager.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2018, Google Inc.\n>    *\n> - * camera_manager.h - Camera management\n> + * Camera management\n>    */\n>   \n>   #include \"libcamera/internal/camera_manager.h\"\n> diff --git a/src/libcamera/delayed_controls.cpp b/src/libcamera/delayed_controls.cpp\n> index 777441e8222a..94d0a575b01b 100644\n> --- a/src/libcamera/delayed_controls.cpp\n> +++ b/src/libcamera/delayed_controls.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Raspberry Pi Ltd\n>    *\n> - * delayed_controls.h - Helper to deal with controls that take effect with a delay\n> + * Helper to deal with controls that take effect with a delay\n>    */\n>   \n>   #include \"libcamera/internal/delayed_controls.h\"\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> index 9195aad2cff2..c49017d1fb29 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Google Inc.\n>    *\n> - * rkisp1path.cpp - Rockchip ISP1 path helper\n> + * Rockchip ISP1 path helper\n>    */\n>   \n>   #include \"rkisp1_path.h\"\n> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1_path.h b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> index cd77957ee4a6..08edefecaa00 100644\n> --- a/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> +++ b/src/libcamera/pipeline/rkisp1/rkisp1_path.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Google Inc.\n>    *\n> - * rkisp1path.h - Rockchip ISP1 path helper\n> + * Rockchip ISP1 path helper\n>    */\n>   \n>   #pragma once\n> diff --git a/src/v4l2/v4l2_camera_file.cpp b/src/v4l2/v4l2_camera_file.cpp\n> index 0a41587ca90b..d8fe854b6d06 100644\n> --- a/src/v4l2/v4l2_camera_file.cpp\n> +++ b/src/v4l2/v4l2_camera_file.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Google Inc.\n>    *\n> - * v4l2_camera_file.h - V4L2 compatibility camera file information\n> + * V4L2 compatibility camera file information\n>    */\n>   \n>   #include \"v4l2_camera_file.h\"\n> diff --git a/test/bayer-format.cpp b/test/bayer-format.cpp\n> index 54f03487fa0e..f8d1980498c1 100644\n> --- a/test/bayer-format.cpp\n> +++ b/test/bayer-format.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Sebastian Fricke\n>    *\n> - * bayer_format.cpp - BayerFormat class tests\n> + * BayerFormat class tests\n>    */\n>   \n>   #include <iostream>\n> diff --git a/test/byte-stream-buffer.cpp b/test/byte-stream-buffer.cpp\n> index 04ff0571b6db..04aab3d28599 100644\n> --- a/test/byte-stream-buffer.cpp\n> +++ b/test/byte-stream-buffer.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2018, Google Inc.\n>    *\n> - * byte_stream_buffer.cpp - ByteStreamBuffer tests\n> + * ByteStreamBuffer tests\n>    */\n>   \n>   #include <array>\n> diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp\n> index 29b33515e48c..b0be14b583d0 100644\n> --- a/test/controls/control_info_map.cpp\n> +++ b/test/controls/control_info_map.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2019, Google Inc.\n>    *\n> - * control_info.cpp - ControlInfoMap tests\n> + * ControlInfoMap tests\n>    */\n>   \n>   #include <iostream>\n> diff --git a/test/gstreamer/gstreamer_device_provider_test.cpp b/test/gstreamer/gstreamer_device_provider_test.cpp\n> index 237af8cd934e..8b8e7cba21e4 100644\n> --- a/test/gstreamer/gstreamer_device_provider_test.cpp\n> +++ b/test/gstreamer/gstreamer_device_provider_test.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2023, Umang Jain <umang.jain@ideasonboard.com>\n>    *\n> - * gstreamer_single_stream_test.cpp - GStreamer single stream capture test\n> + * GStreamer single stream capture test\n>    */\n>   \n>   #include <vector>\n> diff --git a/test/gstreamer/gstreamer_test.h b/test/gstreamer/gstreamer_test.h\n> index aa2261e2dd5c..abb37c1b2f2d 100644\n> --- a/test/gstreamer/gstreamer_test.h\n> +++ b/test/gstreamer/gstreamer_test.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2021, Vedant Paranjape\n>    *\n> - * gstreamer_test.cpp - GStreamer test base class\n> + * GStreamer test base class\n>    */\n>   \n>   #pragma once\n> diff --git a/test/log/log_api.cpp b/test/log/log_api.cpp\n> index 5311896095a9..0b999738d891 100644\n> --- a/test/log/log_api.cpp\n> +++ b/test/log/log_api.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2019, Google Inc.\n>    *\n> - * log.cpp - log API test\n> + * log API test\n>    */\n>   \n>   #include <algorithm>\n> diff --git a/test/object-delete.cpp b/test/object-delete.cpp\n> index 80b7dc41cd37..676c3970328a 100644\n> --- a/test/object-delete.cpp\n> +++ b/test/object-delete.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2020, Google Inc.\n>    *\n> - * object.cpp - Object deletion tests\n> + * Object deletion tests\n>    */\n>   \n>   #include <iostream>\n> diff --git a/test/shared-fd.cpp b/test/shared-fd.cpp\n> index 997d7be18c47..57199dfe7725 100644\n> --- a/test/shared-fd.cpp\n> +++ b/test/shared-fd.cpp\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2019, Google Inc.\n>    *\n> - * shared_fd.cpp - SharedFD test\n> + * SharedFD test\n>    */\n>   \n>   #include <fcntl.h>\n> diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.h b/test/v4l2_videodevice/v4l2_videodevice_test.h\n> index d2de1a6de29f..b5871ce69e18 100644\n> --- a/test/v4l2_videodevice/v4l2_videodevice_test.h\n> +++ b/test/v4l2_videodevice/v4l2_videodevice_test.h\n> @@ -2,7 +2,7 @@\n>   /*\n>    * Copyright (C) 2018, Google Inc.\n>    *\n> - * vl42device_test.h - libcamera v4l2device test base class\n> + * libcamera v4l2device test base class\n>    */\n>   \n>   #pragma once\n> diff --git a/utils/gen-ipa-pub-key.py b/utils/gen-ipa-pub-key.py\n> index a4a1f7b79337..dc3e7d5ff471 100755\n> --- a/utils/gen-ipa-pub-key.py\n> +++ b/utils/gen-ipa-pub-key.py\n> @@ -4,7 +4,7 @@\n>   #\n>   # Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>   #\n> -# ipa-gen-key.py - Generate the IPA module signing public key\n> +# Generate the IPA module signing public key\n>   \n>   import string\n>   import subprocess\n> diff --git a/utils/rkisp1/rkisp1-capture.sh b/utils/rkisp1/rkisp1-capture.sh\n> index c5f859f21001..d767e31daf78 100755\n> --- a/utils/rkisp1/rkisp1-capture.sh\n> +++ b/utils/rkisp1/rkisp1-capture.sh\n> @@ -4,8 +4,7 @@\n>   #\n>   # Author: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n>   #\n> -# rkisp-capture.sh - Capture processed frames from cameras based on the\n> -# Rockchip ISP1\n> +# Capture processed frames from cameras based on the Rockchip ISP1\n>   #\n>   # The scripts makes use of the following tools, which are expected to be\n>   # executable from the system-wide path or from the local directory:","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id CF647BDE6B\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  8 May 2024 21:06:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id C70B96343A;\n\tWed,  8 May 2024 23:06:19 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id C18C261A73\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  8 May 2024 23:06:17 +0200 (CEST)","from [192.168.0.43]\n\t(cpc141996-chfd3-2-0-cust928.12-3.cable.virginm.net [86.13.91.161])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 789BB16D4\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  8 May 2024 23:06:14 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"sR6hi7hi\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1715202374;\n\tbh=Tv/VR6kFmUcvvnrFVvHiU9F++0VNdveyxbC8Vj7Eusg=;\n\th=Date:Subject:To:References:From:In-Reply-To:From;\n\tb=sR6hi7hiC4X5iWqHahYEAsbPgb2e32cs2CdJUazh07T5K2pf5NIZDJf6Wqk3KPCPO\n\tLefCj5I77FT8yjrqzybeF7i/f/nXYdWKroXIlHJ1sENPlM6fqMQiq2Gn5IhRRT1ms6\n\tiep7RJg5dk2hD75/52nirE3f1dCccv6hmYH1vNHA=","Message-ID":"<d475cd23-7cdf-4ab2-9fc3-7c56acbe2f73@ideasonboard.com>","Date":"Wed, 8 May 2024 22:06:14 +0100","MIME-Version":"1.0","User-Agent":"Mozilla Thunderbird","Subject":"Re: [PATCH v1 2/2] libcamera: Drop remaining file name from header\n\tcomment blocks","To":"libcamera-devel@lists.libcamera.org","References":"<20240508205914.15611-1-laurent.pinchart@ideasonboard.com>\n\t<20240508205914.15611-3-laurent.pinchart@ideasonboard.com>","Content-Language":"en-US","From":"Dan Scally <dan.scally@ideasonboard.com>","Autocrypt":"addr=dan.scally@ideasonboard.com; keydata=\n\t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","In-Reply-To":"<20240508205914.15611-3-laurent.pinchart@ideasonboard.com>","Content-Type":"text/plain; charset=UTF-8; format=flowed","Content-Transfer-Encoding":"7bit","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}},{"id":29464,"web_url":"https://patchwork.libcamera.org/comment/29464/","msgid":"<20240508213409.GB13978@pendragon.ideasonboard.com>","date":"2024-05-08T21:34:09","subject":"Re: [PATCH v1 2/2] libcamera: Drop remaining file name from header\n\tcomment blocks","submitter":{"id":2,"url":"https://patchwork.libcamera.org/api/people/2/","name":"Laurent Pinchart","email":"laurent.pinchart@ideasonboard.com"},"content":"Hi Dan,\n\nOn Wed, May 08, 2024 at 10:06:14PM +0100, Daniel Scally wrote:\n> On 08/05/2024 21:59, Laurent Pinchart wrote:\n> > Source files in libcamera start by a comment block header, which\n> > includes the file name and a one-line description of the file contents.\n> > While the latter is useful to get a quick overview of the file contents\n> > at a glance, the former is mostly a source of inconvenience. The name in\n> > the comments can easily get out of sync with the file name when files\n> > are renamed, and copy & paste during development have often lead to\n> > incorrect names being used to start with.\n> >\n> > Readers of the source code are expected to know which file they're\n> > looking it. Drop the file name from the header comment blocks in all\n> > remaining locations that were not caught by the automated script as they\n> > are out of sync with the file name.\n> >\n> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>\n> \n> Reviewed-by: Daniel Scally <dan.scally@ideasonboard.com>\n> \n> But one heads up below...\n> \n> > ---\n> >   include/libcamera/base/thread_annotations.h       | 2 +-\n> >   include/libcamera/fence.h                         | 2 +-\n> >   src/android/camera_ops.cpp                        | 2 +-\n> >   src/android/mm/cros_frame_buffer_allocator.cpp    | 3 +--\n> >   src/android/mm/generic_frame_buffer_allocator.cpp | 2 +-\n> >   src/apps/cam/sdl_sink.cpp                         | 2 +-\n> >   src/apps/ipa-verify/main.cpp                      | 2 +-\n> >   src/apps/lc-compliance/helpers/capture.cpp        | 2 +-\n> >   src/apps/lc-compliance/helpers/capture.h          | 2 +-\n> >   src/apps/qcam/format_converter.cpp                | 2 +-\n> >   src/apps/qcam/format_converter.h                  | 2 +-\n> >   src/apps/qcam/message_handler.h                   | 2 +-\n> >   src/apps/qcam/viewfinder_gl.cpp                   | 2 +-\n> >   src/apps/qcam/viewfinder_gl.h                     | 3 +--\n> >   src/gstreamer/gstlibcamera-utils.cpp              | 2 +-\n> >   src/gstreamer/gstlibcamera.cpp                    | 2 +-\n> >   src/gstreamer/gstlibcameraprovider.cpp            | 2 +-\n> >   src/ipa/ipu3/algorithms/agc.cpp                   | 2 +-\n> >   src/ipa/ipu3/algorithms/blc.h                     | 2 +-\n> >   src/ipa/rpi/controller/denoise_algorithm.h        | 2 +-\n> >   src/ipa/rpi/controller/rpi/denoise.cpp            | 2 +-\n> >   src/ipa/rpi/controller/tonemap_status.h           | 2 +-\n> >   src/ipa/rpi/vc4/vc4.cpp                           | 2 +-\n> >   src/libcamera/base/backtrace.cpp                  | 2 +-\n> >   src/libcamera/camera_manager.cpp                  | 2 +-\n> >   src/libcamera/delayed_controls.cpp                | 2 +-\n> >   src/libcamera/pipeline/rkisp1/rkisp1_path.cpp     | 2 +-\n> >   src/libcamera/pipeline/rkisp1/rkisp1_path.h       | 2 +-\n> >   src/v4l2/v4l2_camera_file.cpp                     | 2 +-\n> >   test/bayer-format.cpp                             | 2 +-\n> >   test/byte-stream-buffer.cpp                       | 2 +-\n> >   test/controls/control_info_map.cpp                | 2 +-\n> >   test/gstreamer/gstreamer_device_provider_test.cpp | 2 +-\n> >   test/gstreamer/gstreamer_test.h                   | 2 +-\n> >   test/log/log_api.cpp                              | 2 +-\n> >   test/object-delete.cpp                            | 2 +-\n> >   test/shared-fd.cpp                                | 2 +-\n> >   test/v4l2_videodevice/v4l2_videodevice_test.h     | 2 +-\n> >   utils/gen-ipa-pub-key.py                          | 2 +-\n> >   utils/rkisp1/rkisp1-capture.sh                    | 3 +--\n> >   40 files changed, 40 insertions(+), 43 deletions(-)\n\n[snip]\n\n> > diff --git a/src/apps/qcam/format_converter.cpp b/src/apps/qcam/format_converter.cpp\n> > index de76b32c7ffd..32123493f905 100644\n> > --- a/src/apps/qcam/format_converter.cpp\n> > +++ b/src/apps/qcam/format_converter.cpp\n> > @@ -2,7 +2,7 @@\n> >   /*\n> >    * Copyright (C) 2019, Google Inc.\n> >    *\n> > - * format_convert.cpp - qcam - Convert buffer to RGB\n> > + * Convert buffer to RGB\n> >    */\n> \n> This drops the \"qcam -\" as well as the \"format_convert.cpp\" - I think that's fine to do but I \n> thought I'd mention it incase it was accidental\n\nIt was on purpose. The majority of files in qcam don't have that prefix,\nso I went for consistency.\n\n> >   #include \"format_converter.h\"\n\n[snip]","headers":{"Return-Path":"<libcamera-devel-bounces@lists.libcamera.org>","X-Original-To":"parsemail@patchwork.libcamera.org","Delivered-To":"parsemail@patchwork.libcamera.org","Received":["from lancelot.ideasonboard.com (lancelot.ideasonboard.com\n\t[92.243.16.209])\n\tby patchwork.libcamera.org (Postfix) with ESMTPS id 4C591C3226\n\tfor <parsemail@patchwork.libcamera.org>;\n\tWed,  8 May 2024 21:34:20 +0000 (UTC)","from lancelot.ideasonboard.com (localhost [IPv6:::1])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTP id A007963437;\n\tWed,  8 May 2024 23:34:19 +0200 (CEST)","from perceval.ideasonboard.com (perceval.ideasonboard.com\n\t[IPv6:2001:4b98:dc2:55:216:3eff:fef7:d647])\n\tby lancelot.ideasonboard.com (Postfix) with ESMTPS id B8F7661A73\n\tfor <libcamera-devel@lists.libcamera.org>;\n\tWed,  8 May 2024 23:34:18 +0200 (CEST)","from pendragon.ideasonboard.com (81-175-209-231.bb.dnainternet.fi\n\t[81.175.209.231])\n\tby perceval.ideasonboard.com (Postfix) with ESMTPSA id 6280C16D4;\n\tWed,  8 May 2024 23:34:15 +0200 (CEST)"],"Authentication-Results":"lancelot.ideasonboard.com; dkim=pass (1024-bit key;\n\tunprotected) header.d=ideasonboard.com header.i=@ideasonboard.com\n\theader.b=\"Jqpyi4wX\"; dkim-atps=neutral","DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/simple; d=ideasonboard.com;\n\ts=mail; t=1715204055;\n\tbh=sQDuPyEmJXN8CKbhydJIYTCbFngBoEvB3Qph4uRtu0A=;\n\th=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n\tb=Jqpyi4wX9Ptx8cUTgiNhjfacobZ9sFL2AGJkf0rPAKOxVmcCnwIlS50fZ35l35959\n\tYvMhshIVIhcbAVxE4hQ7fYKK3VlgygMfxGmcOwBobtCu1OH/7Mvbfpm2lPj0ODjuyZ\n\tg+ZnlaeaWpXng3GY1zzqnztA73Kd6bwqr9BNx6SE=","Date":"Thu, 9 May 2024 00:34:09 +0300","From":"Laurent Pinchart <laurent.pinchart@ideasonboard.com>","To":"Dan Scally <dan.scally@ideasonboard.com>","Cc":"libcamera-devel@lists.libcamera.org","Subject":"Re: [PATCH v1 2/2] libcamera: Drop remaining file name from header\n\tcomment blocks","Message-ID":"<20240508213409.GB13978@pendragon.ideasonboard.com>","References":"<20240508205914.15611-1-laurent.pinchart@ideasonboard.com>\n\t<20240508205914.15611-3-laurent.pinchart@ideasonboard.com>\n\t<d475cd23-7cdf-4ab2-9fc3-7c56acbe2f73@ideasonboard.com>","MIME-Version":"1.0","Content-Type":"text/plain; charset=utf-8","Content-Disposition":"inline","In-Reply-To":"<d475cd23-7cdf-4ab2-9fc3-7c56acbe2f73@ideasonboard.com>","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>","Errors-To":"libcamera-devel-bounces@lists.libcamera.org","Sender":"\"libcamera-devel\" <libcamera-devel-bounces@lists.libcamera.org>"}}]