[libcamera-devel] libcamera: Move internal headers to src/libcamera/include/libcamera/

Message ID 20200511222058.4767-1-laurent.pinchart@ideasonboard.com
State Superseded
Delegated to: Laurent Pinchart
Headers show
Series
  • [libcamera-devel] libcamera: Move internal headers to src/libcamera/include/libcamera/
Related show

Commit Message

Laurent Pinchart May 11, 2020, 10:20 p.m. UTC
The libcamera internal headers are located in src/libcamera/include/.
The directory is added to the compiler headers search path with a meson
include_directories() directive, and internal headers are included with
(e.g. for the internal semaphore.h header)

  #include "semaphore.h"

All was well, until libcxx decided to implement the C++20
synchronization library. The __threading_support header gained a

  #include <semaphore.h>

to include the pthread's semaphore support. As include_directories()
adds src/libcamera/include/ to the compiler search path with -I, the
internal semaphore.h is included instead of the pthread version.
Needless to say, the compiler isn't happy.

Thread options have been considered to fix this issue:

- Use -iquote instead of -I. The -iquote option instructs gcc to only
  consider the header search path for headers included with the ""
  version. Meson unfortunately doesn't support this option.

- Rename the internal semaphore.h header. This was deemed to be the
  beginning of a long whack-a-mole game, where namespace clashes with
  system libraries would appear over time (possibly dependent on
  particular system configurations) and would need to be constantly
  fixed.

- Rename the src/libcamera/include/ internal headers directory to
  src/libcamera/include/libcamera/. This causes lots of churn in all the
  existing source files through the all project.

The first option would be best, but isn't available to us due to missing
support in meson. Even if -iquote support was added, we would need to
fix the problem before a new version of meson containing the required
support would be released.

The third option is thus the only practical solution available. Bite the
bullet, and do it.

Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
---

While at it, should we pick a different directory name for internal
headers, such as libcamera-internal (or hopefully something shorter) to
allow identically named public and private headers ? Or would that be
considered bad practice ?

 Documentation/Doxyfile.in                     |  4 ++--
 src/android/camera3_hal.cpp                   |  3 ++-
 src/android/camera_device.cpp                 |  4 ++--
 src/android/camera_device.h                   |  2 +-
 src/android/camera_hal_manager.cpp            |  2 +-
 src/android/camera_metadata.cpp               |  2 +-
 src/ipa/libipa/ipa_interface_wrapper.cpp      |  4 ++--
 src/ipa/libipa/ipa_interface_wrapper.h        |  2 +-
 src/ipa/raspberrypi/cam_helper.cpp            |  4 ++--
 src/ipa/raspberrypi/cam_helper.hpp            |  2 +-
 src/ipa/raspberrypi/raspberrypi.cpp           |  8 ++++----
 src/ipa/rkisp1/rkisp1.cpp                     |  4 ++--
 src/ipa/vimc/vimc.cpp                         |  4 ++--
 src/libcamera/bound_method.cpp                |  6 +++---
 src/libcamera/buffer.cpp                      |  2 +-
 src/libcamera/byte_stream_buffer.cpp          |  4 ++--
 src/libcamera/camera.cpp                      |  6 +++---
 src/libcamera/camera_controls.cpp             |  2 +-
 src/libcamera/camera_manager.cpp              | 12 +++++------
 src/libcamera/camera_sensor.cpp               |  8 ++++----
 src/libcamera/control_serializer.cpp          |  6 +++---
 src/libcamera/control_validator.cpp           |  2 +-
 src/libcamera/controls.cpp                    |  6 +++---
 src/libcamera/device_enumerator.cpp           | 10 +++++-----
 src/libcamera/device_enumerator_sysfs.cpp     |  6 +++---
 src/libcamera/device_enumerator_udev.cpp      |  6 +++---
 src/libcamera/event_dispatcher.cpp            |  2 +-
 src/libcamera/event_dispatcher_poll.cpp       |  8 ++++----
 src/libcamera/event_notifier.cpp              |  4 ++--
 src/libcamera/file.cpp                        |  4 ++--
 src/libcamera/file_descriptor.cpp             |  2 +-
 src/libcamera/formats.cpp                     |  4 ++--
 src/libcamera/framebuffer_allocator.cpp       |  4 ++--
 .../{ => libcamera}/byte_stream_buffer.h      |  0
 .../include/{ => libcamera}/camera_controls.h |  2 +-
 .../include/{ => libcamera}/camera_sensor.h   |  4 ++--
 .../{ => libcamera}/control_serializer.h      |  0
 .../{ => libcamera}/control_validator.h       |  0
 .../{ => libcamera}/device_enumerator.h       |  0
 .../{ => libcamera}/device_enumerator_sysfs.h |  2 +-
 .../{ => libcamera}/device_enumerator_udev.h  |  2 +-
 .../{ => libcamera}/event_dispatcher_poll.h   |  0
 src/libcamera/include/{ => libcamera}/file.h  |  0
 .../include/{ => libcamera}/formats.h         |  2 +-
 .../{ => libcamera}/ipa_context_wrapper.h     |  2 +-
 .../include/{ => libcamera}/ipa_manager.h     |  6 +++---
 .../include/{ => libcamera}/ipa_module.h      |  4 ++--
 .../include/{ => libcamera}/ipa_proxy.h       |  0
 .../include/{ => libcamera}/ipc_unixsocket.h  |  0
 src/libcamera/include/{ => libcamera}/log.h   |  2 +-
 .../include/{ => libcamera}/media_device.h    |  4 ++--
 .../include/{ => libcamera}/media_object.h    |  0
 .../include/{ => libcamera}/meson.build       |  0
 .../include/{ => libcamera}/message.h         |  0
 .../{ => libcamera}/pipeline_handler.h        |  2 +-
 .../include/{ => libcamera}/process.h         |  0
 .../include/{ => libcamera}/pub_key.h         |  0
 .../include/{ => libcamera}/semaphore.h       |  2 +-
 .../include/{ => libcamera}/thread.h          |  2 +-
 src/libcamera/include/{ => libcamera}/utils.h |  0
 .../include/{ => libcamera}/v4l2_controls.h   |  0
 .../include/{ => libcamera}/v4l2_device.h     |  4 ++--
 .../{ => libcamera}/v4l2_pixelformat.h        |  0
 .../include/{ => libcamera}/v4l2_subdevice.h  |  8 ++++----
 .../{ => libcamera}/v4l2_videodevice.h        |  8 ++++----
 src/libcamera/ipa_context_wrapper.cpp         |  8 ++++----
 src/libcamera/ipa_manager.cpp                 | 14 ++++++-------
 src/libcamera/ipa_module.cpp                  | 10 +++++-----
 src/libcamera/ipa_proxy.cpp                   |  8 ++++----
 src/libcamera/ipa_pub_key.cpp.in              |  2 +-
 src/libcamera/ipc_unixsocket.cpp              |  4 ++--
 src/libcamera/log.cpp                         |  6 +++---
 src/libcamera/media_device.cpp                |  4 ++--
 src/libcamera/media_object.cpp                |  6 +++---
 src/libcamera/meson.build                     |  2 +-
 src/libcamera/message.cpp                     |  4 ++--
 src/libcamera/object.cpp                      | 10 +++++-----
 src/libcamera/pipeline/ipu3/ipu3.cpp          | 18 ++++++++---------
 .../pipeline/raspberrypi/raspberrypi.cpp      | 17 ++++++++--------
 .../pipeline/raspberrypi/staggered_ctrl.h     |  7 ++++---
 src/libcamera/pipeline/rkisp1/rkisp1.cpp      | 19 +++++++++---------
 src/libcamera/pipeline/rkisp1/timeline.cpp    |  2 +-
 src/libcamera/pipeline/rkisp1/timeline.h      |  2 +-
 src/libcamera/pipeline/simple/converter.cpp   |  6 +++---
 src/libcamera/pipeline/simple/simple.cpp      | 14 ++++++-------
 src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  | 14 ++++++-------
 src/libcamera/pipeline/vimc/vimc.cpp          | 20 +++++++++----------
 src/libcamera/pipeline_handler.cpp            | 10 +++++-----
 src/libcamera/process.cpp                     |  6 +++---
 src/libcamera/proxy/ipa_proxy_linux.cpp       | 10 +++++-----
 src/libcamera/proxy/ipa_proxy_thread.cpp      | 10 +++++-----
 .../proxy/worker/ipa_proxy_linux_worker.cpp   |  8 ++++----
 src/libcamera/pub_key.cpp                     |  2 +-
 src/libcamera/request.cpp                     |  4 ++--
 src/libcamera/semaphore.cpp                   |  4 ++--
 src/libcamera/signal.cpp                      |  2 +-
 src/libcamera/stream.cpp                      |  4 ++--
 src/libcamera/thread.cpp                      |  8 ++++----
 src/libcamera/timer.cpp                       |  8 ++++----
 src/libcamera/utils.cpp                       |  2 +-
 src/libcamera/v4l2_controls.cpp               |  2 +-
 src/libcamera/v4l2_device.cpp                 |  8 ++++----
 src/libcamera/v4l2_pixelformat.cpp            |  6 +++---
 src/libcamera/v4l2_subdevice.cpp              | 10 +++++-----
 src/libcamera/v4l2_videodevice.cpp            | 10 +++++-----
 src/v4l2/v4l2_camera.cpp                      |  2 +-
 src/v4l2/v4l2_camera.h                        |  2 +-
 src/v4l2/v4l2_camera_proxy.cpp                |  5 +++--
 src/v4l2/v4l2_compat_manager.cpp              |  2 +-
 test/byte-stream-buffer.cpp                   |  3 ++-
 test/camera-sensor.cpp                        | 10 +++++-----
 test/camera/buffer_import.cpp                 |  6 +++---
 test/controls/control_info_map.cpp            |  2 +-
 test/controls/control_list.cpp                |  2 +-
 test/event-dispatcher.cpp                     |  3 ++-
 test/event-thread.cpp                         |  3 ++-
 test/event.cpp                                |  3 ++-
 test/file-descriptor.cpp                      |  3 ++-
 test/file.cpp                                 |  3 ++-
 test/ipa/ipa_interface_test.cpp               | 11 +++++-----
 test/ipa/ipa_module_test.cpp                  |  2 +-
 test/ipa/ipa_wrappers_test.cpp                | 10 +++++-----
 test/ipc/unixsocket.cpp                       |  7 ++++---
 test/libtest/buffer_source.cpp                |  2 +-
 test/libtest/buffer_source.h                  |  4 ++--
 test/log/log_api.cpp                          |  3 ++-
 test/log/log_process.cpp                      |  9 +++++----
 test/media_device/media_device_print_test.cpp |  2 +-
 test/media_device/media_device_test.h         |  4 ++--
 test/message.cpp                              |  5 +++--
 test/object-invoke.cpp                        |  3 ++-
 test/object.cpp                               |  4 ++--
 test/pipeline/ipu3/ipu3_pipeline_test.cpp     |  7 ++++---
 test/pipeline/rkisp1/rkisp1_pipeline_test.cpp |  7 ++++---
 test/process/process_test.cpp                 |  7 ++++---
 test/serialization/control_serialization.cpp  |  5 +++--
 test/signal-threads.cpp                       |  7 ++++---
 test/threads.cpp                              |  3 ++-
 test/timer-thread.cpp                         |  3 ++-
 test/timer.cpp                                |  3 ++-
 test/utils.cpp                                |  3 ++-
 test/v4l2_subdevice/list_formats.cpp          |  3 ++-
 test/v4l2_subdevice/test_formats.cpp          |  3 ++-
 test/v4l2_subdevice/v4l2_subdevice_test.cpp   |  7 ++++---
 test/v4l2_subdevice/v4l2_subdevice_test.h     |  7 ++++---
 test/v4l2_videodevice/buffer_sharing.cpp      |  3 ++-
 test/v4l2_videodevice/capture_async.cpp       |  3 ++-
 test/v4l2_videodevice/controls.cpp            |  2 +-
 test/v4l2_videodevice/formats.cpp             |  4 ++--
 test/v4l2_videodevice/v4l2_m2mdevice.cpp      |  8 ++++----
 .../v4l2_videodevice_test.cpp                 |  6 +++---
 test/v4l2_videodevice/v4l2_videodevice_test.h | 12 +++++------
 152 files changed, 383 insertions(+), 351 deletions(-)
 rename src/libcamera/include/{ => libcamera}/byte_stream_buffer.h (100%)
 rename src/libcamera/include/{ => libcamera}/camera_controls.h (93%)
 rename src/libcamera/include/{ => libcamera}/camera_sensor.h (97%)
 rename src/libcamera/include/{ => libcamera}/control_serializer.h (100%)
 rename src/libcamera/include/{ => libcamera}/control_validator.h (100%)
 rename src/libcamera/include/{ => libcamera}/device_enumerator.h (100%)
 rename src/libcamera/include/{ => libcamera}/device_enumerator_sysfs.h (93%)
 rename src/libcamera/include/{ => libcamera}/device_enumerator_udev.h (97%)
 rename src/libcamera/include/{ => libcamera}/event_dispatcher_poll.h (100%)
 rename src/libcamera/include/{ => libcamera}/file.h (100%)
 rename src/libcamera/include/{ => libcamera}/formats.h (96%)
 rename src/libcamera/include/{ => libcamera}/ipa_context_wrapper.h (97%)
 rename src/libcamera/include/{ => libcamera}/ipa_manager.h (90%)
 rename src/libcamera/include/{ => libcamera}/ipa_module.h (94%)
 rename src/libcamera/include/{ => libcamera}/ipa_proxy.h (100%)
 rename src/libcamera/include/{ => libcamera}/ipc_unixsocket.h (100%)
 rename src/libcamera/include/{ => libcamera}/log.h (99%)
 rename src/libcamera/include/{ => libcamera}/media_device.h (97%)
 rename src/libcamera/include/{ => libcamera}/media_object.h (100%)
 rename src/libcamera/include/{ => libcamera}/meson.build (100%)
 rename src/libcamera/include/{ => libcamera}/message.h (100%)
 rename src/libcamera/include/{ => libcamera}/pipeline_handler.h (99%)
 rename src/libcamera/include/{ => libcamera}/process.h (100%)
 rename src/libcamera/include/{ => libcamera}/pub_key.h (100%)
 rename src/libcamera/include/{ => libcamera}/semaphore.h (95%)
 rename src/libcamera/include/{ => libcamera}/thread.h (97%)
 rename src/libcamera/include/{ => libcamera}/utils.h (100%)
 rename src/libcamera/include/{ => libcamera}/v4l2_controls.h (100%)
 rename src/libcamera/include/{ => libcamera}/v4l2_device.h (95%)
 rename src/libcamera/include/{ => libcamera}/v4l2_pixelformat.h (100%)
 rename src/libcamera/include/{ => libcamera}/v4l2_subdevice.h (92%)
 rename src/libcamera/include/{ => libcamera}/v4l2_videodevice.h (97%)

Comments

Kieran Bingham May 12, 2020, 7:58 a.m. UTC | #1
Hi Laurent,

On 11/05/2020 23:20, Laurent Pinchart wrote:
> The libcamera internal headers are located in src/libcamera/include/.
> The directory is added to the compiler headers search path with a meson
> include_directories() directive, and internal headers are included with
> (e.g. for the internal semaphore.h header)
> 
>   #include "semaphore.h"
> 
> All was well, until libcxx decided to implement the C++20
> synchronization library. The __threading_support header gained a
> 
>   #include <semaphore.h>
> 
> to include the pthread's semaphore support. As include_directories()
> adds src/libcamera/include/ to the compiler search path with -I, the
> internal semaphore.h is included instead of the pthread version.
> Needless to say, the compiler isn't happy.
> 
> Thread options have been considered to fix this issue:
> 
> - Use -iquote instead of -I. The -iquote option instructs gcc to only
>   consider the header search path for headers included with the ""
>   version. Meson unfortunately doesn't support this option.
> 
> - Rename the internal semaphore.h header. This was deemed to be the
>   beginning of a long whack-a-mole game, where namespace clashes with
>   system libraries would appear over time (possibly dependent on
>   particular system configurations) and would need to be constantly
>   fixed.
> 
> - Rename the src/libcamera/include/ internal headers directory to
>   src/libcamera/include/libcamera/. This causes lots of churn in all the
>   existing source files through the all project.
> 
> The first option would be best, but isn't available to us due to missing
> support in meson. Even if -iquote support was added, we would need to
> fix the problem before a new version of meson containing the required
> support would be released.

Have you reported this to meson?

> 
> The third option is thus the only practical solution available. Bite the
> bullet, and do it.

Ouch, I want to find a way to disagree, because -iquote is what we
/want/ but if meson is forcing our hand .. then ... ;-(

Sooo much redundant use of specifying the path ...

Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>

> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
> 
> While at it, should we pick a different directory name for internal
> headers, such as libcamera-internal (or hopefully something shorter) to
> allow identically named public and private headers ? Or would that be
> considered bad practice ?

I would be worried about having the same internal and external file
name. It would get confusing.

I guess it could be said that being explicit about #include
"libcamera/internal/pixelformat.h" would be different from #include
"libcamera/pixelformat.h" ... but we're definitely getting into an ouch
territory there...

To better consider that ... what purposes would we have for having the
same header expose a different interface internally than externally?

(i.e. potentially answering my own question, could we expect an internal
pixelformat.h to provide V4L2 pixelformats as well?, I think not in that
instance, but maybe there are other possible scenarios like that...)

>  Documentation/Doxyfile.in                     |  4 ++--
>  src/android/camera3_hal.cpp                   |  3 ++-
>  src/android/camera_device.cpp                 |  4 ++--
>  src/android/camera_device.h                   |  2 +-
>  src/android/camera_hal_manager.cpp            |  2 +-
>  src/android/camera_metadata.cpp               |  2 +-
>  src/ipa/libipa/ipa_interface_wrapper.cpp      |  4 ++--
>  src/ipa/libipa/ipa_interface_wrapper.h        |  2 +-
>  src/ipa/raspberrypi/cam_helper.cpp            |  4 ++--
>  src/ipa/raspberrypi/cam_helper.hpp            |  2 +-
>  src/ipa/raspberrypi/raspberrypi.cpp           |  8 ++++----
>  src/ipa/rkisp1/rkisp1.cpp                     |  4 ++--
>  src/ipa/vimc/vimc.cpp                         |  4 ++--
>  src/libcamera/bound_method.cpp                |  6 +++---
>  src/libcamera/buffer.cpp                      |  2 +-
>  src/libcamera/byte_stream_buffer.cpp          |  4 ++--
>  src/libcamera/camera.cpp                      |  6 +++---
>  src/libcamera/camera_controls.cpp             |  2 +-
>  src/libcamera/camera_manager.cpp              | 12 +++++------
>  src/libcamera/camera_sensor.cpp               |  8 ++++----
>  src/libcamera/control_serializer.cpp          |  6 +++---
>  src/libcamera/control_validator.cpp           |  2 +-
>  src/libcamera/controls.cpp                    |  6 +++---
>  src/libcamera/device_enumerator.cpp           | 10 +++++-----
>  src/libcamera/device_enumerator_sysfs.cpp     |  6 +++---
>  src/libcamera/device_enumerator_udev.cpp      |  6 +++---
>  src/libcamera/event_dispatcher.cpp            |  2 +-
>  src/libcamera/event_dispatcher_poll.cpp       |  8 ++++----
>  src/libcamera/event_notifier.cpp              |  4 ++--
>  src/libcamera/file.cpp                        |  4 ++--
>  src/libcamera/file_descriptor.cpp             |  2 +-
>  src/libcamera/formats.cpp                     |  4 ++--
>  src/libcamera/framebuffer_allocator.cpp       |  4 ++--
>  .../{ => libcamera}/byte_stream_buffer.h      |  0
>  .../include/{ => libcamera}/camera_controls.h |  2 +-
>  .../include/{ => libcamera}/camera_sensor.h   |  4 ++--
>  .../{ => libcamera}/control_serializer.h      |  0
>  .../{ => libcamera}/control_validator.h       |  0
>  .../{ => libcamera}/device_enumerator.h       |  0
>  .../{ => libcamera}/device_enumerator_sysfs.h |  2 +-
>  .../{ => libcamera}/device_enumerator_udev.h  |  2 +-
>  .../{ => libcamera}/event_dispatcher_poll.h   |  0
>  src/libcamera/include/{ => libcamera}/file.h  |  0
>  .../include/{ => libcamera}/formats.h         |  2 +-
>  .../{ => libcamera}/ipa_context_wrapper.h     |  2 +-
>  .../include/{ => libcamera}/ipa_manager.h     |  6 +++---
>  .../include/{ => libcamera}/ipa_module.h      |  4 ++--
>  .../include/{ => libcamera}/ipa_proxy.h       |  0
>  .../include/{ => libcamera}/ipc_unixsocket.h  |  0
>  src/libcamera/include/{ => libcamera}/log.h   |  2 +-
>  .../include/{ => libcamera}/media_device.h    |  4 ++--
>  .../include/{ => libcamera}/media_object.h    |  0
>  .../include/{ => libcamera}/meson.build       |  0
>  .../include/{ => libcamera}/message.h         |  0
>  .../{ => libcamera}/pipeline_handler.h        |  2 +-
>  .../include/{ => libcamera}/process.h         |  0
>  .../include/{ => libcamera}/pub_key.h         |  0
>  .../include/{ => libcamera}/semaphore.h       |  2 +-
>  .../include/{ => libcamera}/thread.h          |  2 +-
>  src/libcamera/include/{ => libcamera}/utils.h |  0
>  .../include/{ => libcamera}/v4l2_controls.h   |  0
>  .../include/{ => libcamera}/v4l2_device.h     |  4 ++--
>  .../{ => libcamera}/v4l2_pixelformat.h        |  0
>  .../include/{ => libcamera}/v4l2_subdevice.h  |  8 ++++----
>  .../{ => libcamera}/v4l2_videodevice.h        |  8 ++++----
>  src/libcamera/ipa_context_wrapper.cpp         |  8 ++++----
>  src/libcamera/ipa_manager.cpp                 | 14 ++++++-------
>  src/libcamera/ipa_module.cpp                  | 10 +++++-----
>  src/libcamera/ipa_proxy.cpp                   |  8 ++++----
>  src/libcamera/ipa_pub_key.cpp.in              |  2 +-
>  src/libcamera/ipc_unixsocket.cpp              |  4 ++--
>  src/libcamera/log.cpp                         |  6 +++---
>  src/libcamera/media_device.cpp                |  4 ++--
>  src/libcamera/media_object.cpp                |  6 +++---
>  src/libcamera/meson.build                     |  2 +-
>  src/libcamera/message.cpp                     |  4 ++--
>  src/libcamera/object.cpp                      | 10 +++++-----
>  src/libcamera/pipeline/ipu3/ipu3.cpp          | 18 ++++++++---------
>  .../pipeline/raspberrypi/raspberrypi.cpp      | 17 ++++++++--------
>  .../pipeline/raspberrypi/staggered_ctrl.h     |  7 ++++---
>  src/libcamera/pipeline/rkisp1/rkisp1.cpp      | 19 +++++++++---------
>  src/libcamera/pipeline/rkisp1/timeline.cpp    |  2 +-
>  src/libcamera/pipeline/rkisp1/timeline.h      |  2 +-
>  src/libcamera/pipeline/simple/converter.cpp   |  6 +++---
>  src/libcamera/pipeline/simple/simple.cpp      | 14 ++++++-------
>  src/libcamera/pipeline/uvcvideo/uvcvideo.cpp  | 14 ++++++-------
>  src/libcamera/pipeline/vimc/vimc.cpp          | 20 +++++++++----------
>  src/libcamera/pipeline_handler.cpp            | 10 +++++-----
>  src/libcamera/process.cpp                     |  6 +++---
>  src/libcamera/proxy/ipa_proxy_linux.cpp       | 10 +++++-----
>  src/libcamera/proxy/ipa_proxy_thread.cpp      | 10 +++++-----
>  .../proxy/worker/ipa_proxy_linux_worker.cpp   |  8 ++++----
>  src/libcamera/pub_key.cpp                     |  2 +-
>  src/libcamera/request.cpp                     |  4 ++--
>  src/libcamera/semaphore.cpp                   |  4 ++--
>  src/libcamera/signal.cpp                      |  2 +-
>  src/libcamera/stream.cpp                      |  4 ++--
>  src/libcamera/thread.cpp                      |  8 ++++----
>  src/libcamera/timer.cpp                       |  8 ++++----
>  src/libcamera/utils.cpp                       |  2 +-
>  src/libcamera/v4l2_controls.cpp               |  2 +-
>  src/libcamera/v4l2_device.cpp                 |  8 ++++----
>  src/libcamera/v4l2_pixelformat.cpp            |  6 +++---
>  src/libcamera/v4l2_subdevice.cpp              | 10 +++++-----
>  src/libcamera/v4l2_videodevice.cpp            | 10 +++++-----
>  src/v4l2/v4l2_camera.cpp                      |  2 +-
>  src/v4l2/v4l2_camera.h                        |  2 +-
>  src/v4l2/v4l2_camera_proxy.cpp                |  5 +++--
>  src/v4l2/v4l2_compat_manager.cpp              |  2 +-
>  test/byte-stream-buffer.cpp                   |  3 ++-
>  test/camera-sensor.cpp                        | 10 +++++-----
>  test/camera/buffer_import.cpp                 |  6 +++---
>  test/controls/control_info_map.cpp            |  2 +-
>  test/controls/control_list.cpp                |  2 +-
>  test/event-dispatcher.cpp                     |  3 ++-
>  test/event-thread.cpp                         |  3 ++-
>  test/event.cpp                                |  3 ++-
>  test/file-descriptor.cpp                      |  3 ++-
>  test/file.cpp                                 |  3 ++-
>  test/ipa/ipa_interface_test.cpp               | 11 +++++-----
>  test/ipa/ipa_module_test.cpp                  |  2 +-
>  test/ipa/ipa_wrappers_test.cpp                | 10 +++++-----
>  test/ipc/unixsocket.cpp                       |  7 ++++---
>  test/libtest/buffer_source.cpp                |  2 +-
>  test/libtest/buffer_source.h                  |  4 ++--
>  test/log/log_api.cpp                          |  3 ++-
>  test/log/log_process.cpp                      |  9 +++++----
>  test/media_device/media_device_print_test.cpp |  2 +-
>  test/media_device/media_device_test.h         |  4 ++--
>  test/message.cpp                              |  5 +++--
>  test/object-invoke.cpp                        |  3 ++-
>  test/object.cpp                               |  4 ++--
>  test/pipeline/ipu3/ipu3_pipeline_test.cpp     |  7 ++++---
>  test/pipeline/rkisp1/rkisp1_pipeline_test.cpp |  7 ++++---
>  test/process/process_test.cpp                 |  7 ++++---
>  test/serialization/control_serialization.cpp  |  5 +++--
>  test/signal-threads.cpp                       |  7 ++++---
>  test/threads.cpp                              |  3 ++-
>  test/timer-thread.cpp                         |  3 ++-
>  test/timer.cpp                                |  3 ++-
>  test/utils.cpp                                |  3 ++-
>  test/v4l2_subdevice/list_formats.cpp          |  3 ++-
>  test/v4l2_subdevice/test_formats.cpp          |  3 ++-
>  test/v4l2_subdevice/v4l2_subdevice_test.cpp   |  7 ++++---
>  test/v4l2_subdevice/v4l2_subdevice_test.h     |  7 ++++---
>  test/v4l2_videodevice/buffer_sharing.cpp      |  3 ++-
>  test/v4l2_videodevice/capture_async.cpp       |  3 ++-
>  test/v4l2_videodevice/controls.cpp            |  2 +-
>  test/v4l2_videodevice/formats.cpp             |  4 ++--
>  test/v4l2_videodevice/v4l2_m2mdevice.cpp      |  8 ++++----
>  .../v4l2_videodevice_test.cpp                 |  6 +++---
>  test/v4l2_videodevice/v4l2_videodevice_test.h | 12 +++++------
>  152 files changed, 383 insertions(+), 351 deletions(-)
>  rename src/libcamera/include/{ => libcamera}/byte_stream_buffer.h (100%)
>  rename src/libcamera/include/{ => libcamera}/camera_controls.h (93%)
>  rename src/libcamera/include/{ => libcamera}/camera_sensor.h (97%)
>  rename src/libcamera/include/{ => libcamera}/control_serializer.h (100%)
>  rename src/libcamera/include/{ => libcamera}/control_validator.h (100%)
>  rename src/libcamera/include/{ => libcamera}/device_enumerator.h (100%)
>  rename src/libcamera/include/{ => libcamera}/device_enumerator_sysfs.h (93%)
>  rename src/libcamera/include/{ => libcamera}/device_enumerator_udev.h (97%)
>  rename src/libcamera/include/{ => libcamera}/event_dispatcher_poll.h (100%)
>  rename src/libcamera/include/{ => libcamera}/file.h (100%)
>  rename src/libcamera/include/{ => libcamera}/formats.h (96%)
>  rename src/libcamera/include/{ => libcamera}/ipa_context_wrapper.h (97%)
>  rename src/libcamera/include/{ => libcamera}/ipa_manager.h (90%)
>  rename src/libcamera/include/{ => libcamera}/ipa_module.h (94%)
>  rename src/libcamera/include/{ => libcamera}/ipa_proxy.h (100%)
>  rename src/libcamera/include/{ => libcamera}/ipc_unixsocket.h (100%)
>  rename src/libcamera/include/{ => libcamera}/log.h (99%)
>  rename src/libcamera/include/{ => libcamera}/media_device.h (97%)
>  rename src/libcamera/include/{ => libcamera}/media_object.h (100%)
>  rename src/libcamera/include/{ => libcamera}/meson.build (100%)
>  rename src/libcamera/include/{ => libcamera}/message.h (100%)
>  rename src/libcamera/include/{ => libcamera}/pipeline_handler.h (99%)
>  rename src/libcamera/include/{ => libcamera}/process.h (100%)
>  rename src/libcamera/include/{ => libcamera}/pub_key.h (100%)
>  rename src/libcamera/include/{ => libcamera}/semaphore.h (95%)
>  rename src/libcamera/include/{ => libcamera}/thread.h (97%)
>  rename src/libcamera/include/{ => libcamera}/utils.h (100%)
>  rename src/libcamera/include/{ => libcamera}/v4l2_controls.h (100%)
>  rename src/libcamera/include/{ => libcamera}/v4l2_device.h (95%)
>  rename src/libcamera/include/{ => libcamera}/v4l2_pixelformat.h (100%)
>  rename src/libcamera/include/{ => libcamera}/v4l2_subdevice.h (92%)
>  rename src/libcamera/include/{ => libcamera}/v4l2_videodevice.h (97%)
> 
> diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in
> index 86bcc4d00f88..f9c946823b54 100644
> --- a/Documentation/Doxyfile.in
> +++ b/Documentation/Doxyfile.in
> @@ -844,8 +844,8 @@ RECURSIVE              = YES
>  EXCLUDE                = @TOP_SRCDIR@/include/libcamera/span.h \
>  			 @TOP_SRCDIR@/src/libcamera/device_enumerator_sysfs.cpp \
>  			 @TOP_SRCDIR@/src/libcamera/device_enumerator_udev.cpp \
> -			 @TOP_SRCDIR@/src/libcamera/include/device_enumerator_sysfs.h \
> -			 @TOP_SRCDIR@/src/libcamera/include/device_enumerator_udev.h \
> +			 @TOP_SRCDIR@/src/libcamera/include/libcamera/device_enumerator_sysfs.h \
> +			 @TOP_SRCDIR@/src/libcamera/include/libcamera/device_enumerator_udev.h \
>  			 @TOP_SRCDIR@/src/libcamera/pipeline/ \
>  			 @TOP_SRCDIR@/src/libcamera/proxy/
>  
> diff --git a/src/android/camera3_hal.cpp b/src/android/camera3_hal.cpp
> index 34301ed971b6..11ce8c1ef230 100644
> --- a/src/android/camera3_hal.cpp
> +++ b/src/android/camera3_hal.cpp
> @@ -7,9 +7,10 @@
>  
>  #include <hardware/camera_common.h>
>  
> +#include "libcamera/log.h"
> +
>  #include "camera_device.h"
>  #include "camera_hal_manager.h"
> -#include "log.h"
>  
>  using namespace libcamera;
>  
> diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
> index 76af70ebccfa..a82459602d05 100644
> --- a/src/android/camera_device.cpp
> +++ b/src/android/camera_device.cpp
> @@ -11,8 +11,8 @@
>  #include <libcamera/controls.h>
>  #include <libcamera/property_ids.h>
>  
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>  
>  #include "camera_metadata.h"
>  
> diff --git a/src/android/camera_device.h b/src/android/camera_device.h
> index 55eac317e0e4..3a603c5ba5fb 100644
> --- a/src/android/camera_device.h
> +++ b/src/android/camera_device.h
> @@ -16,7 +16,7 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> -#include "message.h"
> +#include "libcamera/message.h"
>  
>  class CameraMetadata;
>  
> diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp
> index 5bd3bdba8a55..20d4cd43a831 100644
> --- a/src/android/camera_hal_manager.cpp
> +++ b/src/android/camera_hal_manager.cpp
> @@ -9,7 +9,7 @@
>  
>  #include <libcamera/camera.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  #include "camera_device.h"
>  
> diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp
> index 76965108c08b..0dd7a9648398 100644
> --- a/src/android/camera_metadata.cpp
> +++ b/src/android/camera_metadata.cpp
> @@ -7,7 +7,7 @@
>  
>  #include "camera_metadata.h"
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  using namespace libcamera;
>  
> diff --git a/src/ipa/libipa/ipa_interface_wrapper.cpp b/src/ipa/libipa/ipa_interface_wrapper.cpp
> index 21d8c98bddee..b55fe36c6bbf 100644
> --- a/src/ipa/libipa/ipa_interface_wrapper.cpp
> +++ b/src/ipa/libipa/ipa_interface_wrapper.cpp
> @@ -14,8 +14,8 @@
>  
>  #include <ipa/ipa_interface.h>
>  
> -#include "byte_stream_buffer.h"
> -#include "camera_sensor.h"
> +#include "libcamera/byte_stream_buffer.h"
> +#include "libcamera/camera_sensor.h"
>  
>  /**
>   * \file ipa_interface_wrapper.h
> diff --git a/src/ipa/libipa/ipa_interface_wrapper.h b/src/ipa/libipa/ipa_interface_wrapper.h
> index 56507aafd81e..17e8016755ab 100644
> --- a/src/ipa/libipa/ipa_interface_wrapper.h
> +++ b/src/ipa/libipa/ipa_interface_wrapper.h
> @@ -11,7 +11,7 @@
>  
>  #include <ipa/ipa_interface.h>
>  
> -#include "control_serializer.h"
> +#include "libcamera/control_serializer.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp
> index 7f05d2c6b368..c835c7df7969 100644
> --- a/src/ipa/raspberrypi/cam_helper.cpp
> +++ b/src/ipa/raspberrypi/cam_helper.cpp
> @@ -11,11 +11,11 @@
>  #include <map>
>  #include <string.h>
>  
> +#include "libcamera/v4l2_videodevice.h"
> +
>  #include "cam_helper.hpp"
>  #include "md_parser.hpp"
>  
> -#include "v4l2_videodevice.h"
> -
>  using namespace RPi;
>  
>  static std::map<std::string, CamHelperCreateFunc> cam_helpers;
> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp
> index 0c8aa29a4cff..c774df500d05 100644
> --- a/src/ipa/raspberrypi/cam_helper.hpp
> +++ b/src/ipa/raspberrypi/cam_helper.hpp
> @@ -11,7 +11,7 @@
>  #include "camera_mode.h"
>  #include "md_parser.hpp"
>  
> -#include "v4l2_videodevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  namespace RPi {
>  
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 3bcc08156902..d620dc762323 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -22,6 +22,10 @@
>  #include <libcamera/span.h>
>  #include <libipa/ipa_interface_wrapper.h>
>  
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
> +
>  #include <linux/bcm2835-isp.h>
>  
>  #include "agc_algorithm.hpp"
> @@ -44,10 +48,6 @@
>  #include "sdn_status.h"
>  #include "sharpen_status.h"
>  
> -#include "camera_sensor.h"
> -#include "log.h"
> -#include "utils.h"
> -
>  namespace libcamera {
>  
>  /* Configure the sensor with these values initially. */
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index bfa88418fa7b..abdc36c2dfa6 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -22,8 +22,8 @@
>  #include <libcamera/request.h>
>  #include <libipa/ipa_interface_wrapper.h>
>  
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp
> index 9271f2d8acff..11f0b9f28065 100644
> --- a/src/ipa/vimc/vimc.cpp
> +++ b/src/ipa/vimc/vimc.cpp
> @@ -19,8 +19,8 @@
>  
>  #include <libipa/ipa_interface_wrapper.h>
>  
> -#include "file.h"
> -#include "log.h"
> +#include "libcamera/file.h"
> +#include "libcamera/log.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/bound_method.cpp b/src/libcamera/bound_method.cpp
> index 9aa59dc3678f..037ccbaa268a 100644
> --- a/src/libcamera/bound_method.cpp
> +++ b/src/libcamera/bound_method.cpp
> @@ -7,9 +7,9 @@
>  
>  #include <libcamera/bound_method.h>
>  
> -#include "message.h"
> -#include "semaphore.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/semaphore.h"
> +#include "libcamera/thread.h"
>  
>  /**
>   * \file bound_method.h
> diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
> index 0c5e56cf1062..be5e56814150 100644
> --- a/src/libcamera/buffer.cpp
> +++ b/src/libcamera/buffer.cpp
> @@ -12,7 +12,7 @@
>  #include <sys/mman.h>
>  #include <unistd.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file buffer.h
> diff --git a/src/libcamera/byte_stream_buffer.cpp b/src/libcamera/byte_stream_buffer.cpp
> index 20d6a6552c5f..e102db1fe684 100644
> --- a/src/libcamera/byte_stream_buffer.cpp
> +++ b/src/libcamera/byte_stream_buffer.cpp
> @@ -5,12 +5,12 @@
>   * byte_stream_buffer.cpp - Byte stream buffer
>   */
>  
> -#include "byte_stream_buffer.h"
> +#include "libcamera/byte_stream_buffer.h"
>  
>  #include <stdint.h>
>  #include <string.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
> index 8c3bb2c2a01f..927ce2711249 100644
> --- a/src/libcamera/camera.cpp
> +++ b/src/libcamera/camera.cpp
> @@ -14,9 +14,9 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> -#include "log.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file camera.h
> diff --git a/src/libcamera/camera_controls.cpp b/src/libcamera/camera_controls.cpp
> index 59dcede2ca36..5c5d1d5ef7a1 100644
> --- a/src/libcamera/camera_controls.cpp
> +++ b/src/libcamera/camera_controls.cpp
> @@ -5,7 +5,7 @@
>   * camera_controls.cpp - Camera controls
>   */
>  
> -#include "camera_controls.h"
> +#include "libcamera/camera_controls.h"
>  
>  #include <libcamera/camera.h>
>  #include <libcamera/controls.h>
> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
> index fddf7349ec15..580ac5b2816a 100644
> --- a/src/libcamera/camera_manager.cpp
> +++ b/src/libcamera/camera_manager.cpp
> @@ -13,12 +13,12 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/event_dispatcher.h>
>  
> -#include "device_enumerator.h"
> -#include "event_dispatcher_poll.h"
> -#include "log.h"
> -#include "pipeline_handler.h"
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/event_dispatcher_poll.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file camera_manager.h
> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> index 31a916a92722..d65ab32351a8 100644
> --- a/src/libcamera/camera_sensor.cpp
> +++ b/src/libcamera/camera_sensor.cpp
> @@ -5,7 +5,7 @@
>   * camera_sensor.cpp - A camera sensor
>   */
>  
> -#include "camera_sensor.h"
> +#include "libcamera/camera_sensor.h"
>  
>  #include <algorithm>
>  #include <float.h>
> @@ -16,9 +16,9 @@
>  
>  #include <libcamera/property_ids.h>
>  
> -#include "formats.h"
> -#include "utils.h"
> -#include "v4l2_subdevice.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_subdevice.h"
>  
>  /**
>   * \file camera_sensor.h
> diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp
> index fcff5e56fbf7..b2c6512575ab 100644
> --- a/src/libcamera/control_serializer.cpp
> +++ b/src/libcamera/control_serializer.cpp
> @@ -5,7 +5,7 @@
>   * control_serializer.cpp - Control (de)serializer
>   */
>  
> -#include "control_serializer.h"
> +#include "libcamera/control_serializer.h"
>  
>  #include <algorithm>
>  #include <memory>
> @@ -16,8 +16,8 @@
>  #include <libcamera/controls.h>
>  #include <libcamera/span.h>
>  
> -#include "byte_stream_buffer.h"
> -#include "log.h"
> +#include "libcamera/byte_stream_buffer.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file control_serializer.h
> diff --git a/src/libcamera/control_validator.cpp b/src/libcamera/control_validator.cpp
> index 8e5cf3c3e3ee..925dad05673f 100644
> --- a/src/libcamera/control_validator.cpp
> +++ b/src/libcamera/control_validator.cpp
> @@ -5,7 +5,7 @@
>   * control_validator.cpp - Control validator
>   */
>  
> -#include "control_validator.h"
> +#include "libcamera/control_validator.h"
>  
>  /**
>   * \file control_validator.h
> diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
> index 08df7f29e938..4e3b2c041f28 100644
> --- a/src/libcamera/controls.cpp
> +++ b/src/libcamera/controls.cpp
> @@ -12,9 +12,9 @@
>  #include <string>
>  #include <string.h>
>  
> -#include "control_validator.h"
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/control_validator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file controls.h
> diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp
> index dd17e3e32e6c..21ddc1735115 100644
> --- a/src/libcamera/device_enumerator.cpp
> +++ b/src/libcamera/device_enumerator.cpp
> @@ -5,14 +5,14 @@
>   * device_enumerator.cpp - Enumeration and matching
>   */
>  
> -#include "device_enumerator.h"
> -#include "device_enumerator_sysfs.h"
> -#include "device_enumerator_udev.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/device_enumerator_sysfs.h"
> +#include "libcamera/device_enumerator_udev.h"
>  
>  #include <string.h>
>  
> -#include "log.h"
> -#include "media_device.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
>  
>  /**
>   * \file device_enumerator.h
> diff --git a/src/libcamera/device_enumerator_sysfs.cpp b/src/libcamera/device_enumerator_sysfs.cpp
> index 3446db59e9d4..44b32fac5140 100644
> --- a/src/libcamera/device_enumerator_sysfs.cpp
> +++ b/src/libcamera/device_enumerator_sysfs.cpp
> @@ -5,7 +5,7 @@
>   * device_enumerator_sysfs.cpp - sysfs-based device enumerator
>   */
>  
> -#include "device_enumerator_sysfs.h"
> +#include "libcamera/device_enumerator_sysfs.h"
>  
>  #include <dirent.h>
>  #include <fcntl.h>
> @@ -17,8 +17,8 @@
>  #include <sys/types.h>
>  #include <unistd.h>
>  
> -#include "log.h"
> -#include "media_device.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp
> index 2e33c898aeef..27dd9e6da68b 100644
> --- a/src/libcamera/device_enumerator_udev.cpp
> +++ b/src/libcamera/device_enumerator_udev.cpp
> @@ -5,7 +5,7 @@
>   * device_enumerator_udev.cpp - udev-based device enumerator
>   */
>  
> -#include "device_enumerator_udev.h"
> +#include "libcamera/device_enumerator_udev.h"
>  
>  #include <algorithm>
>  #include <fcntl.h>
> @@ -19,8 +19,8 @@
>  
>  #include <libcamera/event_notifier.h>
>  
> -#include "log.h"
> -#include "media_device.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/event_dispatcher.cpp b/src/libcamera/event_dispatcher.cpp
> index bb4fddfffe86..b318e2a8726b 100644
> --- a/src/libcamera/event_dispatcher.cpp
> +++ b/src/libcamera/event_dispatcher.cpp
> @@ -7,7 +7,7 @@
>  
>  #include <libcamera/event_dispatcher.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file event_dispatcher.h
> diff --git a/src/libcamera/event_dispatcher_poll.cpp b/src/libcamera/event_dispatcher_poll.cpp
> index 51ac5adf2f74..284a7aabf984 100644
> --- a/src/libcamera/event_dispatcher_poll.cpp
> +++ b/src/libcamera/event_dispatcher_poll.cpp
> @@ -5,7 +5,7 @@
>   * event_dispatcher_poll.cpp - Poll-based event dispatcher
>   */
>  
> -#include "event_dispatcher_poll.h"
> +#include "libcamera/event_dispatcher_poll.h"
>  
>  #include <algorithm>
>  #include <chrono>
> @@ -19,9 +19,9 @@
>  #include <libcamera/event_notifier.h>
>  #include <libcamera/timer.h>
>  
> -#include "log.h"
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file event_dispatcher_poll.h
> diff --git a/src/libcamera/event_notifier.cpp b/src/libcamera/event_notifier.cpp
> index a9be686f79ae..c0202a04c179 100644
> --- a/src/libcamera/event_notifier.cpp
> +++ b/src/libcamera/event_notifier.cpp
> @@ -10,8 +10,8 @@
>  #include <libcamera/camera_manager.h>
>  #include <libcamera/event_dispatcher.h>
>  
> -#include "message.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
>  
>  /**
>   * \file event_notifier.h
> diff --git a/src/libcamera/file.cpp b/src/libcamera/file.cpp
> index 8223743d5f6b..052e899b5c66 100644
> --- a/src/libcamera/file.cpp
> +++ b/src/libcamera/file.cpp
> @@ -5,7 +5,7 @@
>   * file.cpp - File I/O operations
>   */
>  
> -#include "file.h"
> +#include "libcamera/file.h"
>  
>  #include <errno.h>
>  #include <fcntl.h>
> @@ -14,7 +14,7 @@
>  #include <sys/types.h>
>  #include <unistd.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file file.h
> diff --git a/src/libcamera/file_descriptor.cpp b/src/libcamera/file_descriptor.cpp
> index 88385476d890..a5094c0aff32 100644
> --- a/src/libcamera/file_descriptor.cpp
> +++ b/src/libcamera/file_descriptor.cpp
> @@ -11,7 +11,7 @@
>  #include <unistd.h>
>  #include <utility>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file file_descriptor.h
> diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
> index b3af0f7fcfcc..7edccdfea56a 100644
> --- a/src/libcamera/formats.cpp
> +++ b/src/libcamera/formats.cpp
> @@ -5,11 +5,11 @@
>   * formats.cpp - libcamera image formats
>   */
>  
> -#include "formats.h"
> +#include "libcamera/formats.h"
>  
>  #include <errno.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file formats.h
> diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp
> index a37b564c6701..c002b66675dc 100644
> --- a/src/libcamera/framebuffer_allocator.cpp
> +++ b/src/libcamera/framebuffer_allocator.cpp
> @@ -13,8 +13,8 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/stream.h>
>  
> -#include "log.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
>  
>  /**
>   * \file framebuffer_allocator.h
> diff --git a/src/libcamera/include/byte_stream_buffer.h b/src/libcamera/include/libcamera/byte_stream_buffer.h
> similarity index 100%
> rename from src/libcamera/include/byte_stream_buffer.h
> rename to src/libcamera/include/libcamera/byte_stream_buffer.h
> diff --git a/src/libcamera/include/camera_controls.h b/src/libcamera/include/libcamera/camera_controls.h
> similarity index 93%
> rename from src/libcamera/include/camera_controls.h
> rename to src/libcamera/include/libcamera/camera_controls.h
> index 265c1fe379db..e84a1ac89a18 100644
> --- a/src/libcamera/include/camera_controls.h
> +++ b/src/libcamera/include/libcamera/camera_controls.h
> @@ -7,7 +7,7 @@
>  #ifndef __LIBCAMERA_CAMERA_CONTROLS_H__
>  #define __LIBCAMERA_CAMERA_CONTROLS_H__
>  
> -#include "control_validator.h"
> +#include "libcamera/control_validator.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/camera_sensor.h b/src/libcamera/include/libcamera/camera_sensor.h
> similarity index 97%
> rename from src/libcamera/include/camera_sensor.h
> rename to src/libcamera/include/libcamera/camera_sensor.h
> index 30cf5f34f485..e5e2a1eafb70 100644
> --- a/src/libcamera/include/camera_sensor.h
> +++ b/src/libcamera/include/libcamera/camera_sensor.h
> @@ -14,8 +14,8 @@
>  #include <libcamera/controls.h>
>  #include <libcamera/geometry.h>
>  
> -#include "formats.h"
> -#include "log.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/log.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/control_serializer.h b/src/libcamera/include/libcamera/control_serializer.h
> similarity index 100%
> rename from src/libcamera/include/control_serializer.h
> rename to src/libcamera/include/libcamera/control_serializer.h
> diff --git a/src/libcamera/include/control_validator.h b/src/libcamera/include/libcamera/control_validator.h
> similarity index 100%
> rename from src/libcamera/include/control_validator.h
> rename to src/libcamera/include/libcamera/control_validator.h
> diff --git a/src/libcamera/include/device_enumerator.h b/src/libcamera/include/libcamera/device_enumerator.h
> similarity index 100%
> rename from src/libcamera/include/device_enumerator.h
> rename to src/libcamera/include/libcamera/device_enumerator.h
> diff --git a/src/libcamera/include/device_enumerator_sysfs.h b/src/libcamera/include/libcamera/device_enumerator_sysfs.h
> similarity index 93%
> rename from src/libcamera/include/device_enumerator_sysfs.h
> rename to src/libcamera/include/libcamera/device_enumerator_sysfs.h
> index 5a5c9b0f5a31..a059de01983b 100644
> --- a/src/libcamera/include/device_enumerator_sysfs.h
> +++ b/src/libcamera/include/libcamera/device_enumerator_sysfs.h
> @@ -10,7 +10,7 @@
>  #include <memory>
>  #include <string>
>  
> -#include "device_enumerator.h"
> +#include "libcamera/device_enumerator.h"
>  
>  class MediaDevice;
>  
> diff --git a/src/libcamera/include/device_enumerator_udev.h b/src/libcamera/include/libcamera/device_enumerator_udev.h
> similarity index 97%
> rename from src/libcamera/include/device_enumerator_udev.h
> rename to src/libcamera/include/libcamera/device_enumerator_udev.h
> index fdce4520f33a..7c2f3eaa77ab 100644
> --- a/src/libcamera/include/device_enumerator_udev.h
> +++ b/src/libcamera/include/libcamera/device_enumerator_udev.h
> @@ -14,7 +14,7 @@
>  #include <string>
>  #include <sys/types.h>
>  
> -#include "device_enumerator.h"
> +#include "libcamera/device_enumerator.h"
>  
>  struct udev;
>  struct udev_device;
> diff --git a/src/libcamera/include/event_dispatcher_poll.h b/src/libcamera/include/libcamera/event_dispatcher_poll.h
> similarity index 100%
> rename from src/libcamera/include/event_dispatcher_poll.h
> rename to src/libcamera/include/libcamera/event_dispatcher_poll.h
> diff --git a/src/libcamera/include/file.h b/src/libcamera/include/libcamera/file.h
> similarity index 100%
> rename from src/libcamera/include/file.h
> rename to src/libcamera/include/libcamera/file.h
> diff --git a/src/libcamera/include/formats.h b/src/libcamera/include/libcamera/formats.h
> similarity index 96%
> rename from src/libcamera/include/formats.h
> rename to src/libcamera/include/libcamera/formats.h
> index 291a1108aa33..35c058a3ed66 100644
> --- a/src/libcamera/include/formats.h
> +++ b/src/libcamera/include/libcamera/formats.h
> @@ -14,7 +14,7 @@
>  #include <libcamera/geometry.h>
>  #include <libcamera/pixelformats.h>
>  
> -#include "v4l2_pixelformat.h"
> +#include "libcamera/v4l2_pixelformat.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/ipa_context_wrapper.h b/src/libcamera/include/libcamera/ipa_context_wrapper.h
> similarity index 97%
> rename from src/libcamera/include/ipa_context_wrapper.h
> rename to src/libcamera/include/libcamera/ipa_context_wrapper.h
> index 0db022ef5a1b..6ac7d828d279 100644
> --- a/src/libcamera/include/ipa_context_wrapper.h
> +++ b/src/libcamera/include/libcamera/ipa_context_wrapper.h
> @@ -9,7 +9,7 @@
>  
>  #include <ipa/ipa_interface.h>
>  
> -#include "control_serializer.h"
> +#include "libcamera/control_serializer.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/ipa_manager.h b/src/libcamera/include/libcamera/ipa_manager.h
> similarity index 90%
> rename from src/libcamera/include/ipa_manager.h
> rename to src/libcamera/include/libcamera/ipa_manager.h
> index aa6b9adb1f87..ef80ea109b7f 100644
> --- a/src/libcamera/include/ipa_manager.h
> +++ b/src/libcamera/include/libcamera/ipa_manager.h
> @@ -13,9 +13,9 @@
>  #include <ipa/ipa_interface.h>
>  #include <ipa/ipa_module_info.h>
>  
> -#include "ipa_module.h"
> -#include "pipeline_handler.h"
> -#include "pub_key.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/pub_key.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/ipa_module.h b/src/libcamera/include/libcamera/ipa_module.h
> similarity index 94%
> rename from src/libcamera/include/ipa_module.h
> rename to src/libcamera/include/libcamera/ipa_module.h
> index 15022e19edce..df8466d43998 100644
> --- a/src/libcamera/include/ipa_module.h
> +++ b/src/libcamera/include/libcamera/ipa_module.h
> @@ -14,8 +14,8 @@
>  #include <ipa/ipa_interface.h>
>  #include <ipa/ipa_module_info.h>
>  
> -#include "log.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/ipa_proxy.h b/src/libcamera/include/libcamera/ipa_proxy.h
> similarity index 100%
> rename from src/libcamera/include/ipa_proxy.h
> rename to src/libcamera/include/libcamera/ipa_proxy.h
> diff --git a/src/libcamera/include/ipc_unixsocket.h b/src/libcamera/include/libcamera/ipc_unixsocket.h
> similarity index 100%
> rename from src/libcamera/include/ipc_unixsocket.h
> rename to src/libcamera/include/libcamera/ipc_unixsocket.h
> diff --git a/src/libcamera/include/log.h b/src/libcamera/include/libcamera/log.h
> similarity index 99%
> rename from src/libcamera/include/log.h
> rename to src/libcamera/include/libcamera/log.h
> index ee0b4069bd32..c0d626e4f958 100644
> --- a/src/libcamera/include/log.h
> +++ b/src/libcamera/include/libcamera/log.h
> @@ -10,7 +10,7 @@
>  #include <chrono>
>  #include <sstream>
>  
> -#include "utils.h"
> +#include "libcamera/utils.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/media_device.h b/src/libcamera/include/libcamera/media_device.h
> similarity index 97%
> rename from src/libcamera/include/media_device.h
> rename to src/libcamera/include/libcamera/media_device.h
> index 4d9f76618ec0..3fb67011bfcc 100644
> --- a/src/libcamera/include/media_device.h
> +++ b/src/libcamera/include/libcamera/media_device.h
> @@ -16,8 +16,8 @@
>  
>  #include <libcamera/signal.h>
>  
> -#include "log.h"
> -#include "media_object.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_object.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/media_object.h b/src/libcamera/include/libcamera/media_object.h
> similarity index 100%
> rename from src/libcamera/include/media_object.h
> rename to src/libcamera/include/libcamera/media_object.h
> diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/libcamera/meson.build
> similarity index 100%
> rename from src/libcamera/include/meson.build
> rename to src/libcamera/include/libcamera/meson.build
> diff --git a/src/libcamera/include/message.h b/src/libcamera/include/libcamera/message.h
> similarity index 100%
> rename from src/libcamera/include/message.h
> rename to src/libcamera/include/libcamera/message.h
> diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/libcamera/pipeline_handler.h
> similarity index 99%
> rename from src/libcamera/include/pipeline_handler.h
> rename to src/libcamera/include/libcamera/pipeline_handler.h
> index 706413fa6e9f..9e48948a6786 100644
> --- a/src/libcamera/include/pipeline_handler.h
> +++ b/src/libcamera/include/libcamera/pipeline_handler.h
> @@ -19,7 +19,7 @@
>  #include <libcamera/object.h>
>  #include <libcamera/stream.h>
>  
> -#include "ipa_proxy.h"
> +#include "libcamera/ipa_proxy.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/process.h b/src/libcamera/include/libcamera/process.h
> similarity index 100%
> rename from src/libcamera/include/process.h
> rename to src/libcamera/include/libcamera/process.h
> diff --git a/src/libcamera/include/pub_key.h b/src/libcamera/include/libcamera/pub_key.h
> similarity index 100%
> rename from src/libcamera/include/pub_key.h
> rename to src/libcamera/include/libcamera/pub_key.h
> diff --git a/src/libcamera/include/semaphore.h b/src/libcamera/include/libcamera/semaphore.h
> similarity index 95%
> rename from src/libcamera/include/semaphore.h
> rename to src/libcamera/include/libcamera/semaphore.h
> index c6b286536eb3..de8a27ff211a 100644
> --- a/src/libcamera/include/semaphore.h
> +++ b/src/libcamera/include/libcamera/semaphore.h
> @@ -9,7 +9,7 @@
>  
>  #include <condition_variable>
>  
> -#include "thread.h"
> +#include "libcamera/thread.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/thread.h b/src/libcamera/include/libcamera/thread.h
> similarity index 97%
> rename from src/libcamera/include/thread.h
> rename to src/libcamera/include/libcamera/thread.h
> index d700f111a3ae..5eca8e3171e1 100644
> --- a/src/libcamera/include/thread.h
> +++ b/src/libcamera/include/libcamera/thread.h
> @@ -14,7 +14,7 @@
>  
>  #include <libcamera/signal.h>
>  
> -#include "utils.h"
> +#include "libcamera/utils.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/utils.h b/src/libcamera/include/libcamera/utils.h
> similarity index 100%
> rename from src/libcamera/include/utils.h
> rename to src/libcamera/include/libcamera/utils.h
> diff --git a/src/libcamera/include/v4l2_controls.h b/src/libcamera/include/libcamera/v4l2_controls.h
> similarity index 100%
> rename from src/libcamera/include/v4l2_controls.h
> rename to src/libcamera/include/libcamera/v4l2_controls.h
> diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/libcamera/v4l2_device.h
> similarity index 95%
> rename from src/libcamera/include/v4l2_device.h
> rename to src/libcamera/include/libcamera/v4l2_device.h
> index e604a40df4c9..8e40731d5a39 100644
> --- a/src/libcamera/include/v4l2_device.h
> +++ b/src/libcamera/include/libcamera/v4l2_device.h
> @@ -13,8 +13,8 @@
>  
>  #include <linux/videodev2.h>
>  
> -#include "log.h"
> -#include "v4l2_controls.h"
> +#include "libcamera/log.h"
> +#include "libcamera/v4l2_controls.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/v4l2_pixelformat.h b/src/libcamera/include/libcamera/v4l2_pixelformat.h
> similarity index 100%
> rename from src/libcamera/include/v4l2_pixelformat.h
> rename to src/libcamera/include/libcamera/v4l2_pixelformat.h
> diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/libcamera/v4l2_subdevice.h
> similarity index 92%
> rename from src/libcamera/include/v4l2_subdevice.h
> rename to src/libcamera/include/libcamera/v4l2_subdevice.h
> index d0e565dbdaab..b84995e81178 100644
> --- a/src/libcamera/include/v4l2_subdevice.h
> +++ b/src/libcamera/include/libcamera/v4l2_subdevice.h
> @@ -12,10 +12,10 @@
>  
>  #include <libcamera/geometry.h>
>  
> -#include "formats.h"
> -#include "log.h"
> -#include "media_object.h"
> -#include "v4l2_device.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_object.h"
> +#include "libcamera/v4l2_device.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/include/v4l2_videodevice.h b/src/libcamera/include/libcamera/v4l2_videodevice.h
> similarity index 97%
> rename from src/libcamera/include/v4l2_videodevice.h
> rename to src/libcamera/include/libcamera/v4l2_videodevice.h
> index 94565b97b6b1..df4ca1eeca70 100644
> --- a/src/libcamera/include/v4l2_videodevice.h
> +++ b/src/libcamera/include/libcamera/v4l2_videodevice.h
> @@ -20,10 +20,10 @@
>  #include <libcamera/pixelformats.h>
>  #include <libcamera/signal.h>
>  
> -#include "formats.h"
> -#include "log.h"
> -#include "v4l2_device.h"
> -#include "v4l2_pixelformat.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/log.h"
> +#include "libcamera/v4l2_device.h"
> +#include "libcamera/v4l2_pixelformat.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/ipa_context_wrapper.cpp b/src/libcamera/ipa_context_wrapper.cpp
> index 0bd3a1aeca95..3725a78af553 100644
> --- a/src/libcamera/ipa_context_wrapper.cpp
> +++ b/src/libcamera/ipa_context_wrapper.cpp
> @@ -5,15 +5,15 @@
>   * ipa_context_wrapper.cpp - Image Processing Algorithm context wrapper
>   */
>  
> -#include "ipa_context_wrapper.h"
> +#include "libcamera/ipa_context_wrapper.h"
>  
>  #include <vector>
>  
>  #include <libcamera/controls.h>
>  
> -#include "byte_stream_buffer.h"
> -#include "camera_sensor.h"
> -#include "utils.h"
> +#include "libcamera/byte_stream_buffer.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file ipa_context_wrapper.h
> diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
> index 1faa3dd38188..244aa92fe172 100644
> --- a/src/libcamera/ipa_manager.cpp
> +++ b/src/libcamera/ipa_manager.cpp
> @@ -5,19 +5,19 @@
>   * ipa_manager.cpp - Image Processing Algorithm module manager
>   */
>  
> -#include "ipa_manager.h"
> +#include "libcamera/ipa_manager.h"
>  
>  #include <algorithm>
>  #include <dirent.h>
>  #include <string.h>
>  #include <sys/types.h>
>  
> -#include "file.h"
> -#include "ipa_module.h"
> -#include "ipa_proxy.h"
> -#include "log.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> +#include "libcamera/file.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/ipa_proxy.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file ipa_manager.h
> diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp
> index 3444a788b855..421ab9165fa2 100644
> --- a/src/libcamera/ipa_module.cpp
> +++ b/src/libcamera/ipa_module.cpp
> @@ -5,7 +5,7 @@
>   * ipa_module.cpp - Image Processing Algorithm module
>   */
>  
> -#include "ipa_module.h"
> +#include "libcamera/ipa_module.h"
>  
>  #include <algorithm>
>  #include <array>
> @@ -23,10 +23,10 @@
>  
>  #include <libcamera/span.h>
>  
> -#include "file.h"
> -#include "log.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> +#include "libcamera/file.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file ipa_module.h
> diff --git a/src/libcamera/ipa_proxy.cpp b/src/libcamera/ipa_proxy.cpp
> index 401ac52d38d6..3ae650ed4fb1 100644
> --- a/src/libcamera/ipa_proxy.cpp
> +++ b/src/libcamera/ipa_proxy.cpp
> @@ -5,16 +5,16 @@
>   * ipa_proxy.cpp - Image Processing Algorithm proxy
>   */
>  
> -#include "ipa_proxy.h"
> +#include "libcamera/ipa_proxy.h"
>  
>  #include <string.h>
>  #include <sys/stat.h>
>  #include <sys/types.h>
>  #include <unistd.h>
>  
> -#include "ipa_module.h"
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file ipa_proxy.h
> diff --git a/src/libcamera/ipa_pub_key.cpp.in b/src/libcamera/ipa_pub_key.cpp.in
> index 7ffc1e24d67b..a6e8762e4d15 100644
> --- a/src/libcamera/ipa_pub_key.cpp.in
> +++ b/src/libcamera/ipa_pub_key.cpp.in
> @@ -7,7 +7,7 @@
>   * This file is auto-generated. Do not edit.
>   */
>  
> -#include "ipa_manager.h"
> +#include "libcamera/ipa_manager.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp
> index 6e5cab894a93..4ef1e79260cd 100644
> --- a/src/libcamera/ipc_unixsocket.cpp
> +++ b/src/libcamera/ipc_unixsocket.cpp
> @@ -5,14 +5,14 @@
>   * ipc_unixsocket.cpp - IPC mechanism based on Unix sockets
>   */
>  
> -#include "ipc_unixsocket.h"
> +#include "libcamera/ipc_unixsocket.h"
>  
>  #include <poll.h>
>  #include <string.h>
>  #include <sys/socket.h>
>  #include <unistd.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file ipc_unixsocket.h
> diff --git a/src/libcamera/log.cpp b/src/libcamera/log.cpp
> index fd1b5c39a52e..9e7a30027582 100644
> --- a/src/libcamera/log.cpp
> +++ b/src/libcamera/log.cpp
> @@ -5,7 +5,7 @@
>   * log.cpp - Logging infrastructure
>   */
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  #if HAVE_BACKTRACE
>  #include <execinfo.h>
> @@ -22,8 +22,8 @@
>  
>  #include <libcamera/logging.h>
>  
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file log.h
> diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
> index d4e7e1002224..91873884d51f 100644
> --- a/src/libcamera/media_device.cpp
> +++ b/src/libcamera/media_device.cpp
> @@ -5,7 +5,7 @@
>   * media_device.cpp - Media device handler
>   */
>  
> -#include "media_device.h"
> +#include "libcamera/media_device.h"
>  
>  #include <errno.h>
>  #include <fcntl.h>
> @@ -18,7 +18,7 @@
>  
>  #include <linux/media.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file media_device.h
> diff --git a/src/libcamera/media_object.cpp b/src/libcamera/media_object.cpp
> index ef32065c161d..add4c8bae616 100644
> --- a/src/libcamera/media_object.cpp
> +++ b/src/libcamera/media_object.cpp
> @@ -5,7 +5,7 @@
>   * media_object.cpp - Media device objects: entities, pads and links
>   */
>  
> -#include "media_object.h"
> +#include "libcamera/media_object.h"
>  
>  #include <errno.h>
>  #include <string>
> @@ -15,8 +15,8 @@
>  
>  #include <linux/media.h>
>  
> -#include "log.h"
> -#include "media_device.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
>  
>  /**
>   * \file media_object.h
> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> index d8b4d7206aba..1ae85e2ae961 100644
> --- a/src/libcamera/meson.build
> +++ b/src/libcamera/meson.build
> @@ -49,7 +49,7 @@ libcamera_sources = files([
>      'v4l2_videodevice.cpp',
>  ])
>  
> -subdir('include')
> +subdir(join_paths('include', 'libcamera'))
>  
>  libcamera_internal_includes =  include_directories('include')
>  
> diff --git a/src/libcamera/message.cpp b/src/libcamera/message.cpp
> index 77f2bdd5fbac..d82c3660423c 100644
> --- a/src/libcamera/message.cpp
> +++ b/src/libcamera/message.cpp
> @@ -5,11 +5,11 @@
>   * message.cpp - Message queue support
>   */
>  
> -#include "message.h"
> +#include "libcamera/message.h"
>  
>  #include <libcamera/signal.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file message.h
> diff --git a/src/libcamera/object.cpp b/src/libcamera/object.cpp
> index 99c3bf9a709b..97ab11fc7e2d 100644
> --- a/src/libcamera/object.cpp
> +++ b/src/libcamera/object.cpp
> @@ -11,11 +11,11 @@
>  
>  #include <libcamera/signal.h>
>  
> -#include "log.h"
> -#include "message.h"
> -#include "semaphore.h"
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/message.h"
> +#include "libcamera/semaphore.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file object.h
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index 1988cb0ee551..38928df785c1 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -17,15 +17,15 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 21a1d7f7cca3..e486203e5798 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -21,15 +21,16 @@
>  #include <linux/drm_fourcc.h>
>  #include <linux/videodev2.h>
>  
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "ipa_manager.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_manager.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
> +#include "libcamera/v4l2_videodevice.h"
> +
>  #include "staggered_ctrl.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> -#include "v4l2_videodevice.h"
>  #include "vcsm.h"
>  
>  namespace libcamera {
> diff --git a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> index 0403c087c686..51ea3f7b0ac5 100644
> --- a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> +++ b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> @@ -12,9 +12,10 @@
>  #include <unordered_map>
>  
>  #include <libcamera/controls.h>
> -#include "log.h"
> -#include "utils.h"
> -#include "v4l2_videodevice.h"
> +
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  /* For logging... */
>  using libcamera::LogCategory;
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index 1e81a0048f09..badd3b655a61 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -20,16 +20,17 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "ipa_manager.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_manager.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
> +
>  #include "timeline.h"
> -#include "utils.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/pipeline/rkisp1/timeline.cpp b/src/libcamera/pipeline/rkisp1/timeline.cpp
> index f6c6434d7b53..6577da8ba93f 100644
> --- a/src/libcamera/pipeline/rkisp1/timeline.cpp
> +++ b/src/libcamera/pipeline/rkisp1/timeline.cpp
> @@ -7,7 +7,7 @@
>  
>  #include "timeline.h"
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file timeline.h
> diff --git a/src/libcamera/pipeline/rkisp1/timeline.h b/src/libcamera/pipeline/rkisp1/timeline.h
> index 9d30e4eaf874..ec99e619a1f3 100644
> --- a/src/libcamera/pipeline/rkisp1/timeline.h
> +++ b/src/libcamera/pipeline/rkisp1/timeline.h
> @@ -12,7 +12,7 @@
>  
>  #include <libcamera/timer.h>
>  
> -#include "utils.h"
> +#include "libcamera/utils.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
> index 6d88776dc2f0..41058512dea8 100644
> --- a/src/libcamera/pipeline/simple/converter.cpp
> +++ b/src/libcamera/pipeline/simple/converter.cpp
> @@ -13,9 +13,9 @@
>  #include <libcamera/geometry.h>
>  #include <libcamera/signal.h>
>  
> -#include "log.h"
> -#include "media_device.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> index 6673606153b8..9cf7cfd1e84b 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -24,13 +24,13 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  #include "converter.h"
>  
> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> index f0c1337de862..86cc92764285 100644
> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> @@ -17,13 +17,13 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> -#include "device_enumerator.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
> index 128301e3d99b..dddea4ccdebc 100644
> --- a/src/libcamera/pipeline/vimc/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc/vimc.cpp
> @@ -22,16 +22,16 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>  
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "ipa_manager.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_manager.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
> index 254d341fb8a4..49ab1dc393db 100644
> --- a/src/libcamera/pipeline_handler.cpp
> +++ b/src/libcamera/pipeline_handler.cpp
> @@ -5,7 +5,7 @@
>   * pipeline_handler.cpp - Pipeline handler infrastructure
>   */
>  
> -#include "pipeline_handler.h"
> +#include "libcamera/pipeline_handler.h"
>  
>  #include <sys/sysmacros.h>
>  
> @@ -13,10 +13,10 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/camera_manager.h>
>  
> -#include "device_enumerator.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "utils.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file pipeline_handler.h
> diff --git a/src/libcamera/process.cpp b/src/libcamera/process.cpp
> index 3b4d0f10da67..6d54ea9bc217 100644
> --- a/src/libcamera/process.cpp
> +++ b/src/libcamera/process.cpp
> @@ -5,7 +5,7 @@
>   * process.cpp - Process object
>   */
>  
> -#include "process.h"
> +#include "libcamera/process.h"
>  
>  #include <algorithm>
>  #include <dirent.h>
> @@ -22,8 +22,8 @@
>  
>  #include <libcamera/event_notifier.h>
>  
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file process.h
> diff --git a/src/libcamera/proxy/ipa_proxy_linux.cpp b/src/libcamera/proxy/ipa_proxy_linux.cpp
> index 9e0f44cf314f..749199b1a1fd 100644
> --- a/src/libcamera/proxy/ipa_proxy_linux.cpp
> +++ b/src/libcamera/proxy/ipa_proxy_linux.cpp
> @@ -10,11 +10,11 @@
>  #include <ipa/ipa_interface.h>
>  #include <ipa/ipa_module_info.h>
>  
> -#include "ipa_module.h"
> -#include "ipa_proxy.h"
> -#include "ipc_unixsocket.h"
> -#include "log.h"
> -#include "process.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/ipa_proxy.h"
> +#include "libcamera/ipc_unixsocket.h"
> +#include "libcamera/log.h"
> +#include "libcamera/process.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/proxy/ipa_proxy_thread.cpp b/src/libcamera/proxy/ipa_proxy_thread.cpp
> index 81d2d68ee715..ee54cd7368c8 100644
> --- a/src/libcamera/proxy/ipa_proxy_thread.cpp
> +++ b/src/libcamera/proxy/ipa_proxy_thread.cpp
> @@ -10,11 +10,11 @@
>  #include <ipa/ipa_interface.h>
>  #include <ipa/ipa_module_info.h>
>  
> -#include "ipa_context_wrapper.h"
> -#include "ipa_module.h"
> -#include "ipa_proxy.h"
> -#include "log.h"
> -#include "thread.h"
> +#include "libcamera/ipa_context_wrapper.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/ipa_proxy.h"
> +#include "libcamera/log.h"
> +#include "libcamera/thread.h"
>  
>  namespace libcamera {
>  
> diff --git a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
> index 7d6287c7115b..e3bb0c2d8222 100644
> --- a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
> +++ b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
> @@ -13,10 +13,10 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/logging.h>
>  
> -#include "ipa_module.h"
> -#include "ipc_unixsocket.h"
> -#include "log.h"
> -#include "thread.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/ipc_unixsocket.h"
> +#include "libcamera/log.h"
> +#include "libcamera/thread.h"
>  
>  using namespace libcamera;
>  
> diff --git a/src/libcamera/pub_key.cpp b/src/libcamera/pub_key.cpp
> index 064d2dd200e1..1d809cc61a4f 100644
> --- a/src/libcamera/pub_key.cpp
> +++ b/src/libcamera/pub_key.cpp
> @@ -5,7 +5,7 @@
>   * pub_key.cpp - Public key signature verification
>   */
>  
> -#include "pub_key.h"
> +#include "libcamera/pub_key.h"
>  
>  #if HAVE_GNUTLS
>  #include <gnutls/abstract.h>
> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
> index ea33736fbeb5..dd7863b886de 100644
> --- a/src/libcamera/request.cpp
> +++ b/src/libcamera/request.cpp
> @@ -14,8 +14,8 @@
>  #include <libcamera/control_ids.h>
>  #include <libcamera/stream.h>
>  
> -#include "camera_controls.h"
> -#include "log.h"
> +#include "libcamera/camera_controls.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file request.h
> diff --git a/src/libcamera/semaphore.cpp b/src/libcamera/semaphore.cpp
> index ce1eae4914ed..110b12ea851c 100644
> --- a/src/libcamera/semaphore.cpp
> +++ b/src/libcamera/semaphore.cpp
> @@ -5,8 +5,8 @@
>   * semaphore.cpp - General-purpose counting semaphore
>   */
>  
> -#include "semaphore.h"
> -#include "thread.h"
> +#include "libcamera/semaphore.h"
> +#include "libcamera/thread.h"
>  
>  /**
>   * \file semaphore.h
> diff --git a/src/libcamera/signal.cpp b/src/libcamera/signal.cpp
> index 6eab1fa74d42..daf27072d12b 100644
> --- a/src/libcamera/signal.cpp
> +++ b/src/libcamera/signal.cpp
> @@ -7,7 +7,7 @@
>  
>  #include <libcamera/signal.h>
>  
> -#include "thread.h"
> +#include "libcamera/thread.h"
>  
>  /**
>   * \file signal.h
> diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
> index 86c0b17db313..886613b0ee8f 100644
> --- a/src/libcamera/stream.cpp
> +++ b/src/libcamera/stream.cpp
> @@ -15,8 +15,8 @@
>  
>  #include <libcamera/request.h>
>  
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file stream.h
> diff --git a/src/libcamera/thread.cpp b/src/libcamera/thread.cpp
> index 85293c188c2a..fddbb406b9da 100644
> --- a/src/libcamera/thread.cpp
> +++ b/src/libcamera/thread.cpp
> @@ -5,7 +5,7 @@
>   * thread.cpp - Thread support
>   */
>  
> -#include "thread.h"
> +#include "libcamera/thread.h"
>  
>  #include <atomic>
>  #include <condition_variable>
> @@ -16,9 +16,9 @@
>  
>  #include <libcamera/event_dispatcher.h>
>  
> -#include "event_dispatcher_poll.h"
> -#include "log.h"
> -#include "message.h"
> +#include "libcamera/event_dispatcher_poll.h"
> +#include "libcamera/log.h"
> +#include "libcamera/message.h"
>  
>  /**
>   * \page thread Thread Support
> diff --git a/src/libcamera/timer.cpp b/src/libcamera/timer.cpp
> index 24da51524efb..693d1f876aa9 100644
> --- a/src/libcamera/timer.cpp
> +++ b/src/libcamera/timer.cpp
> @@ -12,10 +12,10 @@
>  #include <libcamera/camera_manager.h>
>  #include <libcamera/event_dispatcher.h>
>  
> -#include "log.h"
> -#include "message.h"
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file timer.h
> diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp
> index fbadf350908a..6a59883a6124 100644
> --- a/src/libcamera/utils.cpp
> +++ b/src/libcamera/utils.cpp
> @@ -5,7 +5,7 @@
>   * utils.cpp - Miscellaneous utility functions
>   */
>  
> -#include "utils.h"
> +#include "libcamera/utils.h"
>  
>  #include <dlfcn.h>
>  #include <elf.h>
> diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp
> index 8e2415f2a6df..b03f3e6ac322 100644
> --- a/src/libcamera/v4l2_controls.cpp
> +++ b/src/libcamera/v4l2_controls.cpp
> @@ -5,7 +5,7 @@
>   * v4l2_controls.cpp - V4L2 Controls Support
>   */
>  
> -#include "v4l2_controls.h"
> +#include "libcamera/v4l2_controls.h"
>  
>  #include <string.h>
>  
> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
> index d08ab531f034..fc458da1245c 100644
> --- a/src/libcamera/v4l2_device.cpp
> +++ b/src/libcamera/v4l2_device.cpp
> @@ -5,7 +5,7 @@
>   * v4l2_device.cpp - Common base for V4L2 video devices and subdevices
>   */
>  
> -#include "v4l2_device.h"
> +#include "libcamera/v4l2_device.h"
>  
>  #include <fcntl.h>
>  #include <iomanip>
> @@ -14,9 +14,9 @@
>  #include <sys/syscall.h>
>  #include <unistd.h>
>  
> -#include "log.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
>  
>  /**
>   * \file v4l2_device.h
> diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp
> index 561f9327780a..ff1047771e85 100644
> --- a/src/libcamera/v4l2_pixelformat.cpp
> +++ b/src/libcamera/v4l2_pixelformat.cpp
> @@ -6,7 +6,7 @@
>   * v4l2_pixelformat.cpp - V4L2 Pixel Format
>   */
>  
> -#include "v4l2_pixelformat.h"
> +#include "libcamera/v4l2_pixelformat.h"
>  
>  #include <ctype.h>
>  #include <map>
> @@ -16,8 +16,8 @@
>  
>  #include <libcamera/pixelformats.h>
>  
> -#include "formats.h"
> -#include "log.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/log.h"
>  
>  /**
>   * \file v4l2_pixelformat.h
> diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
> index 2b756178fc0a..d5f1cd857ed1 100644
> --- a/src/libcamera/v4l2_subdevice.cpp
> +++ b/src/libcamera/v4l2_subdevice.cpp
> @@ -5,7 +5,7 @@
>   * v4l2_subdevice.cpp - V4L2 Subdevice
>   */
>  
> -#include "v4l2_subdevice.h"
> +#include "libcamera/v4l2_subdevice.h"
>  
>  #include <fcntl.h>
>  #include <iomanip>
> @@ -19,10 +19,10 @@
>  
>  #include <libcamera/geometry.h>
>  
> -#include "log.h"
> -#include "media_device.h"
> -#include "media_object.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/media_object.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file v4l2_subdevice.h
> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
> index 4b9f8b5c0413..45ec6a46c013 100644
> --- a/src/libcamera/v4l2_videodevice.cpp
> +++ b/src/libcamera/v4l2_videodevice.cpp
> @@ -5,7 +5,7 @@
>   * v4l2_videodevice.cpp - V4L2 Video Device
>   */
>  
> -#include "v4l2_videodevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  #include <fcntl.h>
>  #include <iomanip>
> @@ -23,10 +23,10 @@
>  #include <libcamera/event_notifier.h>
>  #include <libcamera/file_descriptor.h>
>  
> -#include "log.h"
> -#include "media_device.h"
> -#include "media_object.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/media_object.h"
> +#include "libcamera/utils.h"
>  
>  /**
>   * \file v4l2_videodevice.h
> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
> index ecbb70acfb8e..e16780387059 100644
> --- a/src/v4l2/v4l2_camera.cpp
> +++ b/src/v4l2/v4l2_camera.cpp
> @@ -9,7 +9,7 @@
>  
>  #include <errno.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  using namespace libcamera;
>  
> diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
> index 130995d95eb4..012e80993265 100644
> --- a/src/v4l2/v4l2_camera.h
> +++ b/src/v4l2/v4l2_camera.h
> @@ -17,7 +17,7 @@
>  #include <libcamera/file_descriptor.h>
>  #include <libcamera/framebuffer_allocator.h>
>  
> -#include "semaphore.h"
> +#include "libcamera/semaphore.h"
>  
>  using namespace libcamera;
>  
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 47d0528b324f..4ad0c1edf175 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -17,8 +17,9 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/object.h>
>  
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
> +
>  #include "v4l2_camera.h"
>  #include "v4l2_compat_manager.h"
>  
> diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
> index 961d06b3e39a..6b6b3b16344f 100644
> --- a/src/v4l2/v4l2_compat_manager.cpp
> +++ b/src/v4l2/v4l2_compat_manager.cpp
> @@ -22,7 +22,7 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/camera_manager.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
>  
>  using namespace libcamera;
>  
> diff --git a/test/byte-stream-buffer.cpp b/test/byte-stream-buffer.cpp
> index bc1d462ebf6f..22b8e99eed53 100644
> --- a/test/byte-stream-buffer.cpp
> +++ b/test/byte-stream-buffer.cpp
> @@ -8,7 +8,8 @@
>  #include <array>
>  #include <iostream>
>  
> -#include "byte_stream_buffer.h"
> +#include "libcamera/byte_stream_buffer.h"
> +
>  #include "test.h"
>  
>  using namespace std;
> diff --git a/test/camera-sensor.cpp b/test/camera-sensor.cpp
> index 6069d668e495..d37a9e707d2e 100644
> --- a/test/camera-sensor.cpp
> +++ b/test/camera-sensor.cpp
> @@ -10,11 +10,11 @@
>  
>  #include <linux/media-bus-format.h>
>  
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "utils.h"
> -#include "v4l2_subdevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_subdevice.h"
>  
>  #include "test.h"
>  
> diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp
> index 3f392cdc0732..b79cb998c96a 100644
> --- a/test/camera/buffer_import.cpp
> +++ b/test/camera/buffer_import.cpp
> @@ -12,9 +12,9 @@
>  #include <numeric>
>  #include <vector>
>  
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  #include "buffer_source.h"
>  #include "camera_test.h"
> diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp
> index eeb702db095b..0ce02cd8145d 100644
> --- a/test/controls/control_info_map.cpp
> +++ b/test/controls/control_info_map.cpp
> @@ -12,7 +12,7 @@
>  #include <libcamera/control_ids.h>
>  #include <libcamera/controls.h>
>  
> -#include "camera_controls.h"
> +#include "libcamera/camera_controls.h"
>  
>  #include "camera_test.h"
>  #include "test.h"
> diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
> index d51ec47d61d3..d21cd3ff1d4b 100644
> --- a/test/controls/control_list.cpp
> +++ b/test/controls/control_list.cpp
> @@ -12,7 +12,7 @@
>  #include <libcamera/control_ids.h>
>  #include <libcamera/controls.h>
>  
> -#include "camera_controls.h"
> +#include "libcamera/camera_controls.h"
>  
>  #include "camera_test.h"
>  #include "test.h"
> diff --git a/test/event-dispatcher.cpp b/test/event-dispatcher.cpp
> index 9f9cf17818f2..2417920f69ec 100644
> --- a/test/event-dispatcher.cpp
> +++ b/test/event-dispatcher.cpp
> @@ -13,8 +13,9 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>  
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/event-thread.cpp b/test/event-thread.cpp
> index 01120733eca4..acd3ddedd3d4 100644
> --- a/test/event-thread.cpp
> +++ b/test/event-thread.cpp
> @@ -13,8 +13,9 @@
>  #include <libcamera/event_notifier.h>
>  #include <libcamera/timer.h>
>  
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/event.cpp b/test/event.cpp
> index 816060cc44a2..a33e9116c1bb 100644
> --- a/test/event.cpp
> +++ b/test/event.cpp
> @@ -13,8 +13,9 @@
>  #include <libcamera/event_notifier.h>
>  #include <libcamera/timer.h>
>  
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/file-descriptor.cpp b/test/file-descriptor.cpp
> index e467f3a7145e..13fc7ce45eb8 100644
> --- a/test/file-descriptor.cpp
> +++ b/test/file-descriptor.cpp
> @@ -13,8 +13,9 @@
>  
>  #include <libcamera/file_descriptor.h>
>  
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "utils.h"
>  
>  using namespace libcamera;
>  using namespace std;
> diff --git a/test/file.cpp b/test/file.cpp
> index 6558399808f8..d711d3b4d252 100644
> --- a/test/file.cpp
> +++ b/test/file.cpp
> @@ -13,7 +13,8 @@
>  #include <sys/types.h>
>  #include <unistd.h>
>  
> -#include "file.h"
> +#include "libcamera/file.h"
> +
>  #include "test.h"
>  
>  using namespace std;
> diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp
> index 7fa88efee089..9f10fe17414b 100644
> --- a/test/ipa/ipa_interface_test.cpp
> +++ b/test/ipa/ipa_interface_test.cpp
> @@ -18,12 +18,13 @@
>  
>  #include <ipa/ipa_vimc.h>
>  
> -#include "device_enumerator.h"
> -#include "ipa_manager.h"
> -#include "ipa_module.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_manager.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/ipa/ipa_module_test.cpp b/test/ipa/ipa_module_test.cpp
> index e3aee190b410..2847098391ee 100644
> --- a/test/ipa/ipa_module_test.cpp
> +++ b/test/ipa/ipa_module_test.cpp
> @@ -8,7 +8,7 @@
>  #include <iostream>
>  #include <string.h>
>  
> -#include "ipa_module.h"
> +#include "libcamera/ipa_module.h"
>  
>  #include "test.h"
>  
> diff --git a/test/ipa/ipa_wrappers_test.cpp b/test/ipa/ipa_wrappers_test.cpp
> index 4de132123525..32830dea74c7 100644
> --- a/test/ipa/ipa_wrappers_test.cpp
> +++ b/test/ipa/ipa_wrappers_test.cpp
> @@ -15,11 +15,11 @@
>  #include <libcamera/controls.h>
>  #include <libipa/ipa_interface_wrapper.h>
>  
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "ipa_context_wrapper.h"
> -#include "media_device.h"
> -#include "v4l2_subdevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_context_wrapper.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_subdevice.h"
>  
>  #include "test.h"
>  
> diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
> index f53042b88720..0d10f40de03b 100644
> --- a/test/ipc/unixsocket.cpp
> +++ b/test/ipc/unixsocket.cpp
> @@ -18,10 +18,11 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>  
> -#include "ipc_unixsocket.h"
> +#include "libcamera/ipc_unixsocket.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "thread.h"
> -#include "utils.h"
>  
>  #define CMD_CLOSE	0
>  #define CMD_REVERSE	1
> diff --git a/test/libtest/buffer_source.cpp b/test/libtest/buffer_source.cpp
> index d1dad2a0f8cf..8d7ab8da78c5 100644
> --- a/test/libtest/buffer_source.cpp
> +++ b/test/libtest/buffer_source.cpp
> @@ -10,7 +10,7 @@
>  #include <iostream>
>  #include <memory>
>  
> -#include "device_enumerator.h"
> +#include "libcamera/device_enumerator.h"
>  
>  #include "test.h"
>  
> diff --git a/test/libtest/buffer_source.h b/test/libtest/buffer_source.h
> index ae0879c99480..15b49d14074d 100644
> --- a/test/libtest/buffer_source.h
> +++ b/test/libtest/buffer_source.h
> @@ -9,8 +9,8 @@
>  
>  #include <libcamera/libcamera.h>
>  
> -#include "media_device.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  using namespace libcamera;
>  
> diff --git a/test/log/log_api.cpp b/test/log/log_api.cpp
> index 33622f841253..39e2f775f6df 100644
> --- a/test/log/log_api.cpp
> +++ b/test/log/log_api.cpp
> @@ -18,7 +18,8 @@
>  
>  #include <libcamera/logging.h>
>  
> -#include "log.h"
> +#include "libcamera/log.h"
> +
>  #include "test.h"
>  
>  using namespace std;
> diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
> index 2df4aa43713c..82114a76b7ac 100644
> --- a/test/log/log_process.cpp
> +++ b/test/log/log_process.cpp
> @@ -18,11 +18,12 @@
>  #include <libcamera/logging.h>
>  #include <libcamera/timer.h>
>  
> -#include "log.h"
> -#include "process.h"
> +#include "libcamera/log.h"
> +#include "libcamera/process.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "thread.h"
> -#include "utils.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/media_device/media_device_print_test.cpp b/test/media_device/media_device_print_test.cpp
> index 5018906c75e7..eadfad4061c9 100644
> --- a/test/media_device/media_device_print_test.cpp
> +++ b/test/media_device/media_device_print_test.cpp
> @@ -10,7 +10,7 @@
>  #include <sys/stat.h>
>  #include <unistd.h>
>  
> -#include "media_device.h"
> +#include "libcamera/media_device.h"
>  
>  #include "test.h"
>  
> diff --git a/test/media_device/media_device_test.h b/test/media_device/media_device_test.h
> index cdbd14841d5c..87be6ff8e486 100644
> --- a/test/media_device/media_device_test.h
> +++ b/test/media_device/media_device_test.h
> @@ -9,8 +9,8 @@
>  
>  #include <memory>
>  
> -#include "device_enumerator.h"
> -#include "media_device.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
>  
>  #include "test.h"
>  
> diff --git a/test/message.cpp b/test/message.cpp
> index 478bc79dffa6..1fa2f69254fb 100644
> --- a/test/message.cpp
> +++ b/test/message.cpp
> @@ -9,8 +9,9 @@
>  #include <iostream>
>  #include <thread>
>  
> -#include "message.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
>  
>  using namespace std;
> diff --git a/test/object-invoke.cpp b/test/object-invoke.cpp
> index fa162c838c78..7c1b704f4096 100644
> --- a/test/object-invoke.cpp
> +++ b/test/object-invoke.cpp
> @@ -11,8 +11,9 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/object.h>
>  
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/object.cpp b/test/object.cpp
> index 16118971c755..5e38308a8e2d 100644
> --- a/test/object.cpp
> +++ b/test/object.cpp
> @@ -9,8 +9,8 @@
>  
>  #include <libcamera/object.h>
>  
> -#include "message.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
>  
>  #include "test.h"
>  
> diff --git a/test/pipeline/ipu3/ipu3_pipeline_test.cpp b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
> index a5c6be0955df..f1edc1dd59be 100644
> --- a/test/pipeline/ipu3/ipu3_pipeline_test.cpp
> +++ b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
> @@ -13,9 +13,10 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/camera_manager.h>
>  
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "media_object.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/media_object.h"
> +
>  #include "test.h"
>  
>  using namespace std;
> diff --git a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
> index d46c928fbaf7..0f40485155b4 100644
> --- a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
> +++ b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
> @@ -16,9 +16,10 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/camera_manager.h>
>  
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "media_object.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/media_object.h"
> +
>  #include "test.h"
>  
>  using namespace std;
> diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
> index 7e7b3c2c8bf3..6a3be85b6260 100644
> --- a/test/process/process_test.cpp
> +++ b/test/process/process_test.cpp
> @@ -12,10 +12,11 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>  
> -#include "process.h"
> +#include "libcamera/process.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "thread.h"
> -#include "utils.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/serialization/control_serialization.cpp b/test/serialization/control_serialization.cpp
> index 111365241eb8..c82471b5f627 100644
> --- a/test/serialization/control_serialization.cpp
> +++ b/test/serialization/control_serialization.cpp
> @@ -11,8 +11,9 @@
>  #include <libcamera/control_ids.h>
>  #include <libcamera/controls.h>
>  
> -#include "byte_stream_buffer.h"
> -#include "control_serializer.h"
> +#include "libcamera/byte_stream_buffer.h"
> +#include "libcamera/control_serializer.h"
> +
>  #include "serialization_test.h"
>  #include "test.h"
>  
> diff --git a/test/signal-threads.cpp b/test/signal-threads.cpp
> index f77733ebc030..3682701a19a8 100644
> --- a/test/signal-threads.cpp
> +++ b/test/signal-threads.cpp
> @@ -9,10 +9,11 @@
>  #include <iostream>
>  #include <thread>
>  
> -#include "message.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "utils.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/threads.cpp b/test/threads.cpp
> index 0454761de12c..b36c847e94c0 100644
> --- a/test/threads.cpp
> +++ b/test/threads.cpp
> @@ -9,7 +9,8 @@
>  #include <iostream>
>  #include <thread>
>  
> -#include "thread.h"
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
>  
>  using namespace std;
> diff --git a/test/timer-thread.cpp b/test/timer-thread.cpp
> index 32853b4e80ef..30a843f1b12c 100644
> --- a/test/timer-thread.cpp
> +++ b/test/timer-thread.cpp
> @@ -11,8 +11,9 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>  
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/timer.cpp b/test/timer.cpp
> index 2bdb006edccb..98eaa7ac043c 100644
> --- a/test/timer.cpp
> +++ b/test/timer.cpp
> @@ -11,8 +11,9 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>  
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/utils.cpp b/test/utils.cpp
> index 55ce9365a53e..efea38b6a8f4 100644
> --- a/test/utils.cpp
> +++ b/test/utils.cpp
> @@ -12,8 +12,9 @@
>  
>  #include <libcamera/geometry.h>
>  
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "utils.h"
>  
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/v4l2_subdevice/list_formats.cpp b/test/v4l2_subdevice/list_formats.cpp
> index 067dc5ed30f4..7c757b46811c 100644
> --- a/test/v4l2_subdevice/list_formats.cpp
> +++ b/test/v4l2_subdevice/list_formats.cpp
> @@ -11,7 +11,8 @@
>  
>  #include <libcamera/geometry.h>
>  
> -#include "v4l2_subdevice.h"
> +#include "libcamera/v4l2_subdevice.h"
> +
>  #include "v4l2_subdevice_test.h"
>  
>  using namespace std;
> diff --git a/test/v4l2_subdevice/test_formats.cpp b/test/v4l2_subdevice/test_formats.cpp
> index 5cf5d5664b04..7a1f4c48c8e3 100644
> --- a/test/v4l2_subdevice/test_formats.cpp
> +++ b/test/v4l2_subdevice/test_formats.cpp
> @@ -8,7 +8,8 @@
>  #include <iostream>
>  #include <limits.h>
>  
> -#include "v4l2_subdevice.h"
> +#include "libcamera/v4l2_subdevice.h"
> +
>  #include "v4l2_subdevice_test.h"
>  
>  using namespace std;
> diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.cpp b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
> index 562a638cb28e..35f9b655a7ac 100644
> --- a/test/v4l2_subdevice/v4l2_subdevice_test.cpp
> +++ b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
> @@ -9,9 +9,10 @@
>  #include <string.h>
>  #include <sys/stat.h>
>  
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "v4l2_subdevice.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_subdevice.h"
> +
>  #include "v4l2_subdevice_test.h"
>  
>  using namespace std;
> diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.h b/test/v4l2_subdevice/v4l2_subdevice_test.h
> index 3bce6691f8ef..7097ba1c2659 100644
> --- a/test/v4l2_subdevice/v4l2_subdevice_test.h
> +++ b/test/v4l2_subdevice/v4l2_subdevice_test.h
> @@ -10,10 +10,11 @@
>  
>  #include <libcamera/buffer.h>
>  
> -#include "device_enumerator.h"
> -#include "media_device.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_subdevice.h"
> +
>  #include "test.h"
> -#include "v4l2_subdevice.h"
>  
>  using namespace libcamera;
>  
> diff --git a/test/v4l2_videodevice/buffer_sharing.cpp b/test/v4l2_videodevice/buffer_sharing.cpp
> index 14d3055ad7d1..a03b9dd29819 100644
> --- a/test/v4l2_videodevice/buffer_sharing.cpp
> +++ b/test/v4l2_videodevice/buffer_sharing.cpp
> @@ -16,7 +16,8 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>  
> -#include "thread.h"
> +#include "libcamera/thread.h"
> +
>  #include "v4l2_videodevice_test.h"
>  
>  class BufferSharingTest : public V4L2VideoDeviceTest
> diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
> index b38aabc6263d..ae52cb92151a 100644
> --- a/test/v4l2_videodevice/capture_async.cpp
> +++ b/test/v4l2_videodevice/capture_async.cpp
> @@ -11,7 +11,8 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>  
> -#include "thread.h"
> +#include "libcamera/thread.h"
> +
>  #include "v4l2_videodevice_test.h"
>  
>  class CaptureAsyncTest : public V4L2VideoDeviceTest
> diff --git a/test/v4l2_videodevice/controls.cpp b/test/v4l2_videodevice/controls.cpp
> index 347af2112f1a..4ff60110f007 100644
> --- a/test/v4l2_videodevice/controls.cpp
> +++ b/test/v4l2_videodevice/controls.cpp
> @@ -10,7 +10,7 @@
>  #include <iostream>
>  #include <limits.h>
>  
> -#include "v4l2_videodevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  #include "v4l2_videodevice_test.h"
>  
> diff --git a/test/v4l2_videodevice/formats.cpp b/test/v4l2_videodevice/formats.cpp
> index a74214215faf..bfd5bf5bbbdf 100644
> --- a/test/v4l2_videodevice/formats.cpp
> +++ b/test/v4l2_videodevice/formats.cpp
> @@ -8,8 +8,8 @@
>  #include <iostream>
>  #include <limits.h>
>  
> -#include "utils.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  #include "v4l2_videodevice_test.h"
>  
> diff --git a/test/v4l2_videodevice/v4l2_m2mdevice.cpp b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> index d20e5dfc3077..57a81e40725d 100644
> --- a/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> +++ b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> @@ -11,10 +11,10 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>  
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "thread.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/v4l2_videodevice.h"
>  
>  #include "test.h"
>  
> diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.cpp b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
> index 93b9e72da5b4..cf260fffa4c7 100644
> --- a/test/v4l2_videodevice/v4l2_videodevice_test.cpp
> +++ b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
> @@ -9,11 +9,11 @@
>  
>  #include <linux/media-bus-format.h>
>  
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +
>  #include "v4l2_videodevice_test.h"
>  
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -
>  using namespace std;
>  using namespace libcamera;
>  
> diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.h b/test/v4l2_videodevice/v4l2_videodevice_test.h
> index 9acaceb84fe0..5d4f5f1995ed 100644
> --- a/test/v4l2_videodevice/v4l2_videodevice_test.h
> +++ b/test/v4l2_videodevice/v4l2_videodevice_test.h
> @@ -11,14 +11,14 @@
>  
>  #include <libcamera/buffer.h>
>  
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
> +
>  #include "test.h"
>  
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
> -
>  using namespace libcamera;
>  
>  class V4L2VideoDeviceTest : public Test
>
Laurent Pinchart May 12, 2020, 6:58 p.m. UTC | #2
Hi Kieran,

On Tue, May 12, 2020 at 08:58:06AM +0100, Kieran Bingham wrote:
> On 11/05/2020 23:20, Laurent Pinchart wrote:
> > The libcamera internal headers are located in src/libcamera/include/.
> > The directory is added to the compiler headers search path with a meson
> > include_directories() directive, and internal headers are included with
> > (e.g. for the internal semaphore.h header)
> > 
> >   #include "semaphore.h"
> > 
> > All was well, until libcxx decided to implement the C++20
> > synchronization library. The __threading_support header gained a
> > 
> >   #include <semaphore.h>
> > 
> > to include the pthread's semaphore support. As include_directories()
> > adds src/libcamera/include/ to the compiler search path with -I, the
> > internal semaphore.h is included instead of the pthread version.
> > Needless to say, the compiler isn't happy.
> > 
> > Thread options have been considered to fix this issue:
> > 
> > - Use -iquote instead of -I. The -iquote option instructs gcc to only
> >   consider the header search path for headers included with the ""
> >   version. Meson unfortunately doesn't support this option.
> > 
> > - Rename the internal semaphore.h header. This was deemed to be the
> >   beginning of a long whack-a-mole game, where namespace clashes with
> >   system libraries would appear over time (possibly dependent on
> >   particular system configurations) and would need to be constantly
> >   fixed.
> > 
> > - Rename the src/libcamera/include/ internal headers directory to
> >   src/libcamera/include/libcamera/. This causes lots of churn in all the
> >   existing source files through the all project.
> > 
> > The first option would be best, but isn't available to us due to missing
> > support in meson. Even if -iquote support was added, we would need to
> > fix the problem before a new version of meson containing the required
> > support would be released.
> 
> Have you reported this to meson?

I've discussed it with Jussi Pakkanen on their IRC channel. He wasn't
aware of -iquote (and to be fair, I wasn't either until a couple of days
ago :-)). He thought solving the namespace clash itself was better, as
otherwise other issues could appear in the future. I'm certainly
cautious here as I want a future-proof solution, but I think -iquote
would provide it.

-iquote isn't something Jussi seemed to rule out (although he said it
would probably not work with the Microsoft compiler, but that's not an
issue for us), but not something he was considering as a priority
either. As we have to fix this before -iquote support is available
anyway, I didn't try to push too hard.

> > The third option is thus the only practical solution available. Bite the
> > bullet, and do it.
> 
> Ouch, I want to find a way to disagree, because -iquote is what we
> /want/ but if meson is forcing our hand .. then ... ;-(
> 
> Sooo much redundant use of specifying the path ...
> 
> Acked-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
> 
> > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> > ---
> > 
> > While at it, should we pick a different directory name for internal
> > headers, such as libcamera-internal (or hopefully something shorter) to
> > allow identically named public and private headers ? Or would that be
> > considered bad practice ?
> 
> I would be worried about having the same internal and external file
> name. It would get confusing.
> 
> I guess it could be said that being explicit about #include
> "libcamera/internal/pixelformat.h" would be different from #include
> "libcamera/pixelformat.h" ... but we're definitely getting into an ouch
> territory there...

Agreed. "libcamera/internal/foo.h" is an interesting name though, as it
would be very explicit that the header is internal. It could be achieved
with

	mv src/libcamera/include src/libcamera/internal

and -Isrc/ but that potentially opens the door to more namespace clashes
(for instance src/gstreamer/foo.h could get included by mistake instead
of /usr/include/gstreamer/foo.h - this particular example is bogus as
the system location is /usr/include/gstreamer-1.0/gst/, but you get the
idea). Having

	mv src/libcamera/include src/libcamera/include/libcamera/internal

isn't something I would be looking forward to
(src/libcamera/include/libcamera/ is painful enough). We could however
move the headers to include/libcamera/internal/, I'm not sure to like it
much, but that may be because I'm used to the current location in
src/libcamera/.

> To better consider that ... what purposes would we have for having the
> same header expose a different interface internally than externally?
> 
> (i.e. potentially answering my own question, could we expect an internal
> pixelformat.h to provide V4L2 pixelformats as well?, I think not in that
> instance, but maybe there are other possible scenarios like that...)

For classes that will be extended with a D-pointer, the definition of
the internal D class could go to "libcamera/internal/foo.h" for a public
class defined in <libcamera/foo.h>. Some of the D classes will be
completely internal to one libcamera class, and thus defined in the
corresponding .cpp file, but others may need to be accessible from
multiple internal classes. Qt solves this with

	foo.cpp
	foo.h
	foo_p.h

all located in the src directory. Only foo.h is installed.

Let's keep brainstorming this a little bit. For the purpose of this
discussion, s/internal/private/ in directory names could be an option.
Jacopo Mondi May 13, 2020, 8:48 a.m. UTC | #3
Hi Laurent,

On Tue, May 12, 2020 at 01:20:58AM +0300, Laurent Pinchart wrote:
> The libcamera internal headers are located in src/libcamera/include/.
> The directory is added to the compiler headers search path with a meson
> include_directories() directive, and internal headers are included with
> (e.g. for the internal semaphore.h header)
>
>   #include "semaphore.h"
>
> All was well, until libcxx decided to implement the C++20
> synchronization library. The __threading_support header gained a
>
>   #include <semaphore.h>
>
> to include the pthread's semaphore support. As include_directories()
> adds src/libcamera/include/ to the compiler search path with -I, the
> internal semaphore.h is included instead of the pthread version.
> Needless to say, the compiler isn't happy.
>
> Thread options have been considered to fix this issue:
>
> - Use -iquote instead of -I. The -iquote option instructs gcc to only
>   consider the header search path for headers included with the ""
>   version. Meson unfortunately doesn't support this option.
>
> - Rename the internal semaphore.h header. This was deemed to be the
>   beginning of a long whack-a-mole game, where namespace clashes with
>   system libraries would appear over time (possibly dependent on
>   particular system configurations) and would need to be constantly
>   fixed.
>
> - Rename the src/libcamera/include/ internal headers directory to
>   src/libcamera/include/libcamera/. This causes lots of churn in all the
>   existing source files through the all project.
>
> The first option would be best, but isn't available to us due to missing
> support in meson. Even if -iquote support was added, we would need to
> fix the problem before a new version of meson containing the required
> support would be released.
>
> The third option is thus the only practical solution available. Bite the
> bullet, and do it.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
> ---
>
> While at it, should we pick a different directory name for internal
> headers, such as libcamera-internal (or hopefully something shorter) to
> allow identically named public and private headers ? Or would that be
> considered bad practice ?

I actually like the
#include <libcamera/foo.h> <- public

#include "libcamera/bar.h> <- private

being aware that's a fragile stylistic difference, as if I'm not
mistaken we can use <> or "" for both private and public includes
interchangeably.

This only works however if we don't have name clashes, and d-pointers
seems like a possible cause for them to happen.

For the reasons exposed, I would avoid -Isrc/ but I think
#include "libcamera/include/foo.h" for a private header might be the
best option, as it would similarly allow other directories in src/ to
do the same, i.e.
#include "gstreamer/include/foo.h"

That would need a not-pleasant
src/libcamera/include/libcamera/include/ though that could however
give us a bit more space for
src/libcamera/include/proxy/include to sort internal headers a bit
more precisely if we want to.

I won't bikeshed too much though, but I agree we need different
inclusion paths unfortunately, whatever name is fine with me :)

However, won't we have similar issues with, i.e.
#include <linux/v4l2-controls.h> or any other header which is
available system-wide ?

>

[snip]

> diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp
> index 7f05d2c6b368..c835c7df7969 100644
> --- a/src/ipa/raspberrypi/cam_helper.cpp
> +++ b/src/ipa/raspberrypi/cam_helper.cpp
> @@ -11,11 +11,11 @@
>  #include <map>
>  #include <string.h>
>
> +#include "libcamera/v4l2_videodevice.h"
> +
>  #include "cam_helper.hpp"
>  #include "md_parser.hpp"
>
> -#include "v4l2_videodevice.h"
> -
>  using namespace RPi;
>
>  static std::map<std::string, CamHelperCreateFunc> cam_helpers;
> diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp
> index 0c8aa29a4cff..c774df500d05 100644
> --- a/src/ipa/raspberrypi/cam_helper.hpp
> +++ b/src/ipa/raspberrypi/cam_helper.hpp
> @@ -11,7 +11,7 @@
>  #include "camera_mode.h"
>  #include "md_parser.hpp"
>
> -#include "v4l2_videodevice.h"
> +#include "libcamera/v4l2_videodevice.h"

Seems like you have handled this and the previous one differently.
Here headers are not re-sorted, in the previous one they are.

>
>  namespace RPi {
>
> diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
> index 3bcc08156902..d620dc762323 100644
> --- a/src/ipa/raspberrypi/raspberrypi.cpp
> +++ b/src/ipa/raspberrypi/raspberrypi.cpp
> @@ -22,6 +22,10 @@
>  #include <libcamera/span.h>
>  #include <libipa/ipa_interface_wrapper.h>
>
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
> +
>  #include <linux/bcm2835-isp.h>

Shouldn't we have headers included from the public directory first ?
I see entried below where you have not moved #include "libcamera/,,,"
before #include <linux/...>

The rest looks good to me
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>

>
>  #include "agc_algorithm.hpp"
> @@ -44,10 +48,6 @@
>  #include "sdn_status.h"
>  #include "sharpen_status.h"
>
> -#include "camera_sensor.h"
> -#include "log.h"
> -#include "utils.h"
> -
>  namespace libcamera {
>
>  /* Configure the sensor with these values initially. */
> diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
> index bfa88418fa7b..abdc36c2dfa6 100644
> --- a/src/ipa/rkisp1/rkisp1.cpp
> +++ b/src/ipa/rkisp1/rkisp1.cpp
> @@ -22,8 +22,8 @@
>  #include <libcamera/request.h>
>  #include <libipa/ipa_interface_wrapper.h>
>
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>
>  namespace libcamera {
>
> diff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp
> index 9271f2d8acff..11f0b9f28065 100644
> --- a/src/ipa/vimc/vimc.cpp
> +++ b/src/ipa/vimc/vimc.cpp
> @@ -19,8 +19,8 @@
>
>  #include <libipa/ipa_interface_wrapper.h>
>
> -#include "file.h"
> -#include "log.h"
> +#include "libcamera/file.h"
> +#include "libcamera/log.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/bound_method.cpp b/src/libcamera/bound_method.cpp
> index 9aa59dc3678f..037ccbaa268a 100644
> --- a/src/libcamera/bound_method.cpp
> +++ b/src/libcamera/bound_method.cpp
> @@ -7,9 +7,9 @@
>
>  #include <libcamera/bound_method.h>
>
> -#include "message.h"
> -#include "semaphore.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/semaphore.h"
> +#include "libcamera/thread.h"
>
>  /**
>   * \file bound_method.h
> diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
> index 0c5e56cf1062..be5e56814150 100644
> --- a/src/libcamera/buffer.cpp
> +++ b/src/libcamera/buffer.cpp
> @@ -12,7 +12,7 @@
>  #include <sys/mman.h>
>  #include <unistd.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file buffer.h
> diff --git a/src/libcamera/byte_stream_buffer.cpp b/src/libcamera/byte_stream_buffer.cpp
> index 20d6a6552c5f..e102db1fe684 100644
> --- a/src/libcamera/byte_stream_buffer.cpp
> +++ b/src/libcamera/byte_stream_buffer.cpp
> @@ -5,12 +5,12 @@
>   * byte_stream_buffer.cpp - Byte stream buffer
>   */
>
> -#include "byte_stream_buffer.h"
> +#include "libcamera/byte_stream_buffer.h"
>
>  #include <stdint.h>
>  #include <string.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
> index 8c3bb2c2a01f..927ce2711249 100644
> --- a/src/libcamera/camera.cpp
> +++ b/src/libcamera/camera.cpp
> @@ -14,9 +14,9 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>
> -#include "log.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file camera.h
> diff --git a/src/libcamera/camera_controls.cpp b/src/libcamera/camera_controls.cpp
> index 59dcede2ca36..5c5d1d5ef7a1 100644
> --- a/src/libcamera/camera_controls.cpp
> +++ b/src/libcamera/camera_controls.cpp
> @@ -5,7 +5,7 @@
>   * camera_controls.cpp - Camera controls
>   */
>
> -#include "camera_controls.h"
> +#include "libcamera/camera_controls.h"
>
>  #include <libcamera/camera.h>
>  #include <libcamera/controls.h>
> diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
> index fddf7349ec15..580ac5b2816a 100644
> --- a/src/libcamera/camera_manager.cpp
> +++ b/src/libcamera/camera_manager.cpp
> @@ -13,12 +13,12 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/event_dispatcher.h>
>
> -#include "device_enumerator.h"
> -#include "event_dispatcher_poll.h"
> -#include "log.h"
> -#include "pipeline_handler.h"
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/event_dispatcher_poll.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file camera_manager.h
> diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
> index 31a916a92722..d65ab32351a8 100644
> --- a/src/libcamera/camera_sensor.cpp
> +++ b/src/libcamera/camera_sensor.cpp
> @@ -5,7 +5,7 @@
>   * camera_sensor.cpp - A camera sensor
>   */
>
> -#include "camera_sensor.h"
> +#include "libcamera/camera_sensor.h"
>
>  #include <algorithm>
>  #include <float.h>
> @@ -16,9 +16,9 @@
>
>  #include <libcamera/property_ids.h>
>
> -#include "formats.h"
> -#include "utils.h"
> -#include "v4l2_subdevice.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_subdevice.h"
>
>  /**
>   * \file camera_sensor.h
> diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp
> index fcff5e56fbf7..b2c6512575ab 100644
> --- a/src/libcamera/control_serializer.cpp
> +++ b/src/libcamera/control_serializer.cpp
> @@ -5,7 +5,7 @@
>   * control_serializer.cpp - Control (de)serializer
>   */
>
> -#include "control_serializer.h"
> +#include "libcamera/control_serializer.h"
>
>  #include <algorithm>
>  #include <memory>
> @@ -16,8 +16,8 @@
>  #include <libcamera/controls.h>
>  #include <libcamera/span.h>
>
> -#include "byte_stream_buffer.h"
> -#include "log.h"
> +#include "libcamera/byte_stream_buffer.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file control_serializer.h
> diff --git a/src/libcamera/control_validator.cpp b/src/libcamera/control_validator.cpp
> index 8e5cf3c3e3ee..925dad05673f 100644
> --- a/src/libcamera/control_validator.cpp
> +++ b/src/libcamera/control_validator.cpp
> @@ -5,7 +5,7 @@
>   * control_validator.cpp - Control validator
>   */
>
> -#include "control_validator.h"
> +#include "libcamera/control_validator.h"
>
>  /**
>   * \file control_validator.h
> diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
> index 08df7f29e938..4e3b2c041f28 100644
> --- a/src/libcamera/controls.cpp
> +++ b/src/libcamera/controls.cpp
> @@ -12,9 +12,9 @@
>  #include <string>
>  #include <string.h>
>
> -#include "control_validator.h"
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/control_validator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file controls.h
> diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp
> index dd17e3e32e6c..21ddc1735115 100644
> --- a/src/libcamera/device_enumerator.cpp
> +++ b/src/libcamera/device_enumerator.cpp
> @@ -5,14 +5,14 @@
>   * device_enumerator.cpp - Enumeration and matching
>   */
>
> -#include "device_enumerator.h"
> -#include "device_enumerator_sysfs.h"
> -#include "device_enumerator_udev.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/device_enumerator_sysfs.h"
> +#include "libcamera/device_enumerator_udev.h"
>
>  #include <string.h>
>
> -#include "log.h"
> -#include "media_device.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
>
>  /**
>   * \file device_enumerator.h
> diff --git a/src/libcamera/device_enumerator_sysfs.cpp b/src/libcamera/device_enumerator_sysfs.cpp
> index 3446db59e9d4..44b32fac5140 100644
> --- a/src/libcamera/device_enumerator_sysfs.cpp
> +++ b/src/libcamera/device_enumerator_sysfs.cpp
> @@ -5,7 +5,7 @@
>   * device_enumerator_sysfs.cpp - sysfs-based device enumerator
>   */
>
> -#include "device_enumerator_sysfs.h"
> +#include "libcamera/device_enumerator_sysfs.h"
>
>  #include <dirent.h>
>  #include <fcntl.h>
> @@ -17,8 +17,8 @@
>  #include <sys/types.h>
>  #include <unistd.h>
>
> -#include "log.h"
> -#include "media_device.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp
> index 2e33c898aeef..27dd9e6da68b 100644
> --- a/src/libcamera/device_enumerator_udev.cpp
> +++ b/src/libcamera/device_enumerator_udev.cpp
> @@ -5,7 +5,7 @@
>   * device_enumerator_udev.cpp - udev-based device enumerator
>   */
>
> -#include "device_enumerator_udev.h"
> +#include "libcamera/device_enumerator_udev.h"
>
>  #include <algorithm>
>  #include <fcntl.h>
> @@ -19,8 +19,8 @@
>
>  #include <libcamera/event_notifier.h>
>
> -#include "log.h"
> -#include "media_device.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/event_dispatcher.cpp b/src/libcamera/event_dispatcher.cpp
> index bb4fddfffe86..b318e2a8726b 100644
> --- a/src/libcamera/event_dispatcher.cpp
> +++ b/src/libcamera/event_dispatcher.cpp
> @@ -7,7 +7,7 @@
>
>  #include <libcamera/event_dispatcher.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file event_dispatcher.h
> diff --git a/src/libcamera/event_dispatcher_poll.cpp b/src/libcamera/event_dispatcher_poll.cpp
> index 51ac5adf2f74..284a7aabf984 100644
> --- a/src/libcamera/event_dispatcher_poll.cpp
> +++ b/src/libcamera/event_dispatcher_poll.cpp
> @@ -5,7 +5,7 @@
>   * event_dispatcher_poll.cpp - Poll-based event dispatcher
>   */
>
> -#include "event_dispatcher_poll.h"
> +#include "libcamera/event_dispatcher_poll.h"
>
>  #include <algorithm>
>  #include <chrono>
> @@ -19,9 +19,9 @@
>  #include <libcamera/event_notifier.h>
>  #include <libcamera/timer.h>
>
> -#include "log.h"
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file event_dispatcher_poll.h
> diff --git a/src/libcamera/event_notifier.cpp b/src/libcamera/event_notifier.cpp
> index a9be686f79ae..c0202a04c179 100644
> --- a/src/libcamera/event_notifier.cpp
> +++ b/src/libcamera/event_notifier.cpp
> @@ -10,8 +10,8 @@
>  #include <libcamera/camera_manager.h>
>  #include <libcamera/event_dispatcher.h>
>
> -#include "message.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
>
>  /**
>   * \file event_notifier.h
> diff --git a/src/libcamera/file.cpp b/src/libcamera/file.cpp
> index 8223743d5f6b..052e899b5c66 100644
> --- a/src/libcamera/file.cpp
> +++ b/src/libcamera/file.cpp
> @@ -5,7 +5,7 @@
>   * file.cpp - File I/O operations
>   */
>
> -#include "file.h"
> +#include "libcamera/file.h"
>
>  #include <errno.h>
>  #include <fcntl.h>
> @@ -14,7 +14,7 @@
>  #include <sys/types.h>
>  #include <unistd.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file file.h
> diff --git a/src/libcamera/file_descriptor.cpp b/src/libcamera/file_descriptor.cpp
> index 88385476d890..a5094c0aff32 100644
> --- a/src/libcamera/file_descriptor.cpp
> +++ b/src/libcamera/file_descriptor.cpp
> @@ -11,7 +11,7 @@
>  #include <unistd.h>
>  #include <utility>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file file_descriptor.h
> diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
> index b3af0f7fcfcc..7edccdfea56a 100644
> --- a/src/libcamera/formats.cpp
> +++ b/src/libcamera/formats.cpp
> @@ -5,11 +5,11 @@
>   * formats.cpp - libcamera image formats
>   */
>
> -#include "formats.h"
> +#include "libcamera/formats.h"
>
>  #include <errno.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file formats.h
> diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp
> index a37b564c6701..c002b66675dc 100644
> --- a/src/libcamera/framebuffer_allocator.cpp
> +++ b/src/libcamera/framebuffer_allocator.cpp
> @@ -13,8 +13,8 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/stream.h>
>
> -#include "log.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
>
>  /**
>   * \file framebuffer_allocator.h
> diff --git a/src/libcamera/include/byte_stream_buffer.h b/src/libcamera/include/libcamera/byte_stream_buffer.h
> similarity index 100%
> rename from src/libcamera/include/byte_stream_buffer.h
> rename to src/libcamera/include/libcamera/byte_stream_buffer.h
> diff --git a/src/libcamera/include/camera_controls.h b/src/libcamera/include/libcamera/camera_controls.h
> similarity index 93%
> rename from src/libcamera/include/camera_controls.h
> rename to src/libcamera/include/libcamera/camera_controls.h
> index 265c1fe379db..e84a1ac89a18 100644
> --- a/src/libcamera/include/camera_controls.h
> +++ b/src/libcamera/include/libcamera/camera_controls.h
> @@ -7,7 +7,7 @@
>  #ifndef __LIBCAMERA_CAMERA_CONTROLS_H__
>  #define __LIBCAMERA_CAMERA_CONTROLS_H__
>
> -#include "control_validator.h"
> +#include "libcamera/control_validator.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/camera_sensor.h b/src/libcamera/include/libcamera/camera_sensor.h
> similarity index 97%
> rename from src/libcamera/include/camera_sensor.h
> rename to src/libcamera/include/libcamera/camera_sensor.h
> index 30cf5f34f485..e5e2a1eafb70 100644
> --- a/src/libcamera/include/camera_sensor.h
> +++ b/src/libcamera/include/libcamera/camera_sensor.h
> @@ -14,8 +14,8 @@
>  #include <libcamera/controls.h>
>  #include <libcamera/geometry.h>
>
> -#include "formats.h"
> -#include "log.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/log.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/control_serializer.h b/src/libcamera/include/libcamera/control_serializer.h
> similarity index 100%
> rename from src/libcamera/include/control_serializer.h
> rename to src/libcamera/include/libcamera/control_serializer.h
> diff --git a/src/libcamera/include/control_validator.h b/src/libcamera/include/libcamera/control_validator.h
> similarity index 100%
> rename from src/libcamera/include/control_validator.h
> rename to src/libcamera/include/libcamera/control_validator.h
> diff --git a/src/libcamera/include/device_enumerator.h b/src/libcamera/include/libcamera/device_enumerator.h
> similarity index 100%
> rename from src/libcamera/include/device_enumerator.h
> rename to src/libcamera/include/libcamera/device_enumerator.h
> diff --git a/src/libcamera/include/device_enumerator_sysfs.h b/src/libcamera/include/libcamera/device_enumerator_sysfs.h
> similarity index 93%
> rename from src/libcamera/include/device_enumerator_sysfs.h
> rename to src/libcamera/include/libcamera/device_enumerator_sysfs.h
> index 5a5c9b0f5a31..a059de01983b 100644
> --- a/src/libcamera/include/device_enumerator_sysfs.h
> +++ b/src/libcamera/include/libcamera/device_enumerator_sysfs.h
> @@ -10,7 +10,7 @@
>  #include <memory>
>  #include <string>
>
> -#include "device_enumerator.h"
> +#include "libcamera/device_enumerator.h"
>
>  class MediaDevice;
>
> diff --git a/src/libcamera/include/device_enumerator_udev.h b/src/libcamera/include/libcamera/device_enumerator_udev.h
> similarity index 97%
> rename from src/libcamera/include/device_enumerator_udev.h
> rename to src/libcamera/include/libcamera/device_enumerator_udev.h
> index fdce4520f33a..7c2f3eaa77ab 100644
> --- a/src/libcamera/include/device_enumerator_udev.h
> +++ b/src/libcamera/include/libcamera/device_enumerator_udev.h
> @@ -14,7 +14,7 @@
>  #include <string>
>  #include <sys/types.h>
>
> -#include "device_enumerator.h"
> +#include "libcamera/device_enumerator.h"
>
>  struct udev;
>  struct udev_device;
> diff --git a/src/libcamera/include/event_dispatcher_poll.h b/src/libcamera/include/libcamera/event_dispatcher_poll.h
> similarity index 100%
> rename from src/libcamera/include/event_dispatcher_poll.h
> rename to src/libcamera/include/libcamera/event_dispatcher_poll.h
> diff --git a/src/libcamera/include/file.h b/src/libcamera/include/libcamera/file.h
> similarity index 100%
> rename from src/libcamera/include/file.h
> rename to src/libcamera/include/libcamera/file.h
> diff --git a/src/libcamera/include/formats.h b/src/libcamera/include/libcamera/formats.h
> similarity index 96%
> rename from src/libcamera/include/formats.h
> rename to src/libcamera/include/libcamera/formats.h
> index 291a1108aa33..35c058a3ed66 100644
> --- a/src/libcamera/include/formats.h
> +++ b/src/libcamera/include/libcamera/formats.h
> @@ -14,7 +14,7 @@
>  #include <libcamera/geometry.h>
>  #include <libcamera/pixelformats.h>
>
> -#include "v4l2_pixelformat.h"
> +#include "libcamera/v4l2_pixelformat.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/ipa_context_wrapper.h b/src/libcamera/include/libcamera/ipa_context_wrapper.h
> similarity index 97%
> rename from src/libcamera/include/ipa_context_wrapper.h
> rename to src/libcamera/include/libcamera/ipa_context_wrapper.h
> index 0db022ef5a1b..6ac7d828d279 100644
> --- a/src/libcamera/include/ipa_context_wrapper.h
> +++ b/src/libcamera/include/libcamera/ipa_context_wrapper.h
> @@ -9,7 +9,7 @@
>
>  #include <ipa/ipa_interface.h>
>
> -#include "control_serializer.h"
> +#include "libcamera/control_serializer.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/ipa_manager.h b/src/libcamera/include/libcamera/ipa_manager.h
> similarity index 90%
> rename from src/libcamera/include/ipa_manager.h
> rename to src/libcamera/include/libcamera/ipa_manager.h
> index aa6b9adb1f87..ef80ea109b7f 100644
> --- a/src/libcamera/include/ipa_manager.h
> +++ b/src/libcamera/include/libcamera/ipa_manager.h
> @@ -13,9 +13,9 @@
>  #include <ipa/ipa_interface.h>
>  #include <ipa/ipa_module_info.h>
>
> -#include "ipa_module.h"
> -#include "pipeline_handler.h"
> -#include "pub_key.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/pub_key.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/ipa_module.h b/src/libcamera/include/libcamera/ipa_module.h
> similarity index 94%
> rename from src/libcamera/include/ipa_module.h
> rename to src/libcamera/include/libcamera/ipa_module.h
> index 15022e19edce..df8466d43998 100644
> --- a/src/libcamera/include/ipa_module.h
> +++ b/src/libcamera/include/libcamera/ipa_module.h
> @@ -14,8 +14,8 @@
>  #include <ipa/ipa_interface.h>
>  #include <ipa/ipa_module_info.h>
>
> -#include "log.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/ipa_proxy.h b/src/libcamera/include/libcamera/ipa_proxy.h
> similarity index 100%
> rename from src/libcamera/include/ipa_proxy.h
> rename to src/libcamera/include/libcamera/ipa_proxy.h
> diff --git a/src/libcamera/include/ipc_unixsocket.h b/src/libcamera/include/libcamera/ipc_unixsocket.h
> similarity index 100%
> rename from src/libcamera/include/ipc_unixsocket.h
> rename to src/libcamera/include/libcamera/ipc_unixsocket.h
> diff --git a/src/libcamera/include/log.h b/src/libcamera/include/libcamera/log.h
> similarity index 99%
> rename from src/libcamera/include/log.h
> rename to src/libcamera/include/libcamera/log.h
> index ee0b4069bd32..c0d626e4f958 100644
> --- a/src/libcamera/include/log.h
> +++ b/src/libcamera/include/libcamera/log.h
> @@ -10,7 +10,7 @@
>  #include <chrono>
>  #include <sstream>
>
> -#include "utils.h"
> +#include "libcamera/utils.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/media_device.h b/src/libcamera/include/libcamera/media_device.h
> similarity index 97%
> rename from src/libcamera/include/media_device.h
> rename to src/libcamera/include/libcamera/media_device.h
> index 4d9f76618ec0..3fb67011bfcc 100644
> --- a/src/libcamera/include/media_device.h
> +++ b/src/libcamera/include/libcamera/media_device.h
> @@ -16,8 +16,8 @@
>
>  #include <libcamera/signal.h>
>
> -#include "log.h"
> -#include "media_object.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_object.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/media_object.h b/src/libcamera/include/libcamera/media_object.h
> similarity index 100%
> rename from src/libcamera/include/media_object.h
> rename to src/libcamera/include/libcamera/media_object.h
> diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/libcamera/meson.build
> similarity index 100%
> rename from src/libcamera/include/meson.build
> rename to src/libcamera/include/libcamera/meson.build
> diff --git a/src/libcamera/include/message.h b/src/libcamera/include/libcamera/message.h
> similarity index 100%
> rename from src/libcamera/include/message.h
> rename to src/libcamera/include/libcamera/message.h
> diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/libcamera/pipeline_handler.h
> similarity index 99%
> rename from src/libcamera/include/pipeline_handler.h
> rename to src/libcamera/include/libcamera/pipeline_handler.h
> index 706413fa6e9f..9e48948a6786 100644
> --- a/src/libcamera/include/pipeline_handler.h
> +++ b/src/libcamera/include/libcamera/pipeline_handler.h
> @@ -19,7 +19,7 @@
>  #include <libcamera/object.h>
>  #include <libcamera/stream.h>
>
> -#include "ipa_proxy.h"
> +#include "libcamera/ipa_proxy.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/process.h b/src/libcamera/include/libcamera/process.h
> similarity index 100%
> rename from src/libcamera/include/process.h
> rename to src/libcamera/include/libcamera/process.h
> diff --git a/src/libcamera/include/pub_key.h b/src/libcamera/include/libcamera/pub_key.h
> similarity index 100%
> rename from src/libcamera/include/pub_key.h
> rename to src/libcamera/include/libcamera/pub_key.h
> diff --git a/src/libcamera/include/semaphore.h b/src/libcamera/include/libcamera/semaphore.h
> similarity index 95%
> rename from src/libcamera/include/semaphore.h
> rename to src/libcamera/include/libcamera/semaphore.h
> index c6b286536eb3..de8a27ff211a 100644
> --- a/src/libcamera/include/semaphore.h
> +++ b/src/libcamera/include/libcamera/semaphore.h
> @@ -9,7 +9,7 @@
>
>  #include <condition_variable>
>
> -#include "thread.h"
> +#include "libcamera/thread.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/thread.h b/src/libcamera/include/libcamera/thread.h
> similarity index 97%
> rename from src/libcamera/include/thread.h
> rename to src/libcamera/include/libcamera/thread.h
> index d700f111a3ae..5eca8e3171e1 100644
> --- a/src/libcamera/include/thread.h
> +++ b/src/libcamera/include/libcamera/thread.h
> @@ -14,7 +14,7 @@
>
>  #include <libcamera/signal.h>
>
> -#include "utils.h"
> +#include "libcamera/utils.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/utils.h b/src/libcamera/include/libcamera/utils.h
> similarity index 100%
> rename from src/libcamera/include/utils.h
> rename to src/libcamera/include/libcamera/utils.h
> diff --git a/src/libcamera/include/v4l2_controls.h b/src/libcamera/include/libcamera/v4l2_controls.h
> similarity index 100%
> rename from src/libcamera/include/v4l2_controls.h
> rename to src/libcamera/include/libcamera/v4l2_controls.h
> diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/libcamera/v4l2_device.h
> similarity index 95%
> rename from src/libcamera/include/v4l2_device.h
> rename to src/libcamera/include/libcamera/v4l2_device.h
> index e604a40df4c9..8e40731d5a39 100644
> --- a/src/libcamera/include/v4l2_device.h
> +++ b/src/libcamera/include/libcamera/v4l2_device.h
> @@ -13,8 +13,8 @@
>
>  #include <linux/videodev2.h>
>
> -#include "log.h"
> -#include "v4l2_controls.h"
> +#include "libcamera/log.h"
> +#include "libcamera/v4l2_controls.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/v4l2_pixelformat.h b/src/libcamera/include/libcamera/v4l2_pixelformat.h
> similarity index 100%
> rename from src/libcamera/include/v4l2_pixelformat.h
> rename to src/libcamera/include/libcamera/v4l2_pixelformat.h
> diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/libcamera/v4l2_subdevice.h
> similarity index 92%
> rename from src/libcamera/include/v4l2_subdevice.h
> rename to src/libcamera/include/libcamera/v4l2_subdevice.h
> index d0e565dbdaab..b84995e81178 100644
> --- a/src/libcamera/include/v4l2_subdevice.h
> +++ b/src/libcamera/include/libcamera/v4l2_subdevice.h
> @@ -12,10 +12,10 @@
>
>  #include <libcamera/geometry.h>
>
> -#include "formats.h"
> -#include "log.h"
> -#include "media_object.h"
> -#include "v4l2_device.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_object.h"
> +#include "libcamera/v4l2_device.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/include/v4l2_videodevice.h b/src/libcamera/include/libcamera/v4l2_videodevice.h
> similarity index 97%
> rename from src/libcamera/include/v4l2_videodevice.h
> rename to src/libcamera/include/libcamera/v4l2_videodevice.h
> index 94565b97b6b1..df4ca1eeca70 100644
> --- a/src/libcamera/include/v4l2_videodevice.h
> +++ b/src/libcamera/include/libcamera/v4l2_videodevice.h
> @@ -20,10 +20,10 @@
>  #include <libcamera/pixelformats.h>
>  #include <libcamera/signal.h>
>
> -#include "formats.h"
> -#include "log.h"
> -#include "v4l2_device.h"
> -#include "v4l2_pixelformat.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/log.h"
> +#include "libcamera/v4l2_device.h"
> +#include "libcamera/v4l2_pixelformat.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/ipa_context_wrapper.cpp b/src/libcamera/ipa_context_wrapper.cpp
> index 0bd3a1aeca95..3725a78af553 100644
> --- a/src/libcamera/ipa_context_wrapper.cpp
> +++ b/src/libcamera/ipa_context_wrapper.cpp
> @@ -5,15 +5,15 @@
>   * ipa_context_wrapper.cpp - Image Processing Algorithm context wrapper
>   */
>
> -#include "ipa_context_wrapper.h"
> +#include "libcamera/ipa_context_wrapper.h"
>
>  #include <vector>
>
>  #include <libcamera/controls.h>
>
> -#include "byte_stream_buffer.h"
> -#include "camera_sensor.h"
> -#include "utils.h"
> +#include "libcamera/byte_stream_buffer.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file ipa_context_wrapper.h
> diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
> index 1faa3dd38188..244aa92fe172 100644
> --- a/src/libcamera/ipa_manager.cpp
> +++ b/src/libcamera/ipa_manager.cpp
> @@ -5,19 +5,19 @@
>   * ipa_manager.cpp - Image Processing Algorithm module manager
>   */
>
> -#include "ipa_manager.h"
> +#include "libcamera/ipa_manager.h"
>
>  #include <algorithm>
>  #include <dirent.h>
>  #include <string.h>
>  #include <sys/types.h>
>
> -#include "file.h"
> -#include "ipa_module.h"
> -#include "ipa_proxy.h"
> -#include "log.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> +#include "libcamera/file.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/ipa_proxy.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file ipa_manager.h
> diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp
> index 3444a788b855..421ab9165fa2 100644
> --- a/src/libcamera/ipa_module.cpp
> +++ b/src/libcamera/ipa_module.cpp
> @@ -5,7 +5,7 @@
>   * ipa_module.cpp - Image Processing Algorithm module
>   */
>
> -#include "ipa_module.h"
> +#include "libcamera/ipa_module.h"
>
>  #include <algorithm>
>  #include <array>
> @@ -23,10 +23,10 @@
>
>  #include <libcamera/span.h>
>
> -#include "file.h"
> -#include "log.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> +#include "libcamera/file.h"
> +#include "libcamera/log.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file ipa_module.h
> diff --git a/src/libcamera/ipa_proxy.cpp b/src/libcamera/ipa_proxy.cpp
> index 401ac52d38d6..3ae650ed4fb1 100644
> --- a/src/libcamera/ipa_proxy.cpp
> +++ b/src/libcamera/ipa_proxy.cpp
> @@ -5,16 +5,16 @@
>   * ipa_proxy.cpp - Image Processing Algorithm proxy
>   */
>
> -#include "ipa_proxy.h"
> +#include "libcamera/ipa_proxy.h"
>
>  #include <string.h>
>  #include <sys/stat.h>
>  #include <sys/types.h>
>  #include <unistd.h>
>
> -#include "ipa_module.h"
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file ipa_proxy.h
> diff --git a/src/libcamera/ipa_pub_key.cpp.in b/src/libcamera/ipa_pub_key.cpp.in
> index 7ffc1e24d67b..a6e8762e4d15 100644
> --- a/src/libcamera/ipa_pub_key.cpp.in
> +++ b/src/libcamera/ipa_pub_key.cpp.in
> @@ -7,7 +7,7 @@
>   * This file is auto-generated. Do not edit.
>   */
>
> -#include "ipa_manager.h"
> +#include "libcamera/ipa_manager.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp
> index 6e5cab894a93..4ef1e79260cd 100644
> --- a/src/libcamera/ipc_unixsocket.cpp
> +++ b/src/libcamera/ipc_unixsocket.cpp
> @@ -5,14 +5,14 @@
>   * ipc_unixsocket.cpp - IPC mechanism based on Unix sockets
>   */
>
> -#include "ipc_unixsocket.h"
> +#include "libcamera/ipc_unixsocket.h"
>
>  #include <poll.h>
>  #include <string.h>
>  #include <sys/socket.h>
>  #include <unistd.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file ipc_unixsocket.h
> diff --git a/src/libcamera/log.cpp b/src/libcamera/log.cpp
> index fd1b5c39a52e..9e7a30027582 100644
> --- a/src/libcamera/log.cpp
> +++ b/src/libcamera/log.cpp
> @@ -5,7 +5,7 @@
>   * log.cpp - Logging infrastructure
>   */
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  #if HAVE_BACKTRACE
>  #include <execinfo.h>
> @@ -22,8 +22,8 @@
>
>  #include <libcamera/logging.h>
>
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file log.h
> diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
> index d4e7e1002224..91873884d51f 100644
> --- a/src/libcamera/media_device.cpp
> +++ b/src/libcamera/media_device.cpp
> @@ -5,7 +5,7 @@
>   * media_device.cpp - Media device handler
>   */
>
> -#include "media_device.h"
> +#include "libcamera/media_device.h"
>
>  #include <errno.h>
>  #include <fcntl.h>
> @@ -18,7 +18,7 @@
>
>  #include <linux/media.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file media_device.h
> diff --git a/src/libcamera/media_object.cpp b/src/libcamera/media_object.cpp
> index ef32065c161d..add4c8bae616 100644
> --- a/src/libcamera/media_object.cpp
> +++ b/src/libcamera/media_object.cpp
> @@ -5,7 +5,7 @@
>   * media_object.cpp - Media device objects: entities, pads and links
>   */
>
> -#include "media_object.h"
> +#include "libcamera/media_object.h"
>
>  #include <errno.h>
>  #include <string>
> @@ -15,8 +15,8 @@
>
>  #include <linux/media.h>
>
> -#include "log.h"
> -#include "media_device.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
>
>  /**
>   * \file media_object.h
> diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
> index d8b4d7206aba..1ae85e2ae961 100644
> --- a/src/libcamera/meson.build
> +++ b/src/libcamera/meson.build
> @@ -49,7 +49,7 @@ libcamera_sources = files([
>      'v4l2_videodevice.cpp',
>  ])
>
> -subdir('include')
> +subdir(join_paths('include', 'libcamera'))
>
>  libcamera_internal_includes =  include_directories('include')
>
> diff --git a/src/libcamera/message.cpp b/src/libcamera/message.cpp
> index 77f2bdd5fbac..d82c3660423c 100644
> --- a/src/libcamera/message.cpp
> +++ b/src/libcamera/message.cpp
> @@ -5,11 +5,11 @@
>   * message.cpp - Message queue support
>   */
>
> -#include "message.h"
> +#include "libcamera/message.h"
>
>  #include <libcamera/signal.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file message.h
> diff --git a/src/libcamera/object.cpp b/src/libcamera/object.cpp
> index 99c3bf9a709b..97ab11fc7e2d 100644
> --- a/src/libcamera/object.cpp
> +++ b/src/libcamera/object.cpp
> @@ -11,11 +11,11 @@
>
>  #include <libcamera/signal.h>
>
> -#include "log.h"
> -#include "message.h"
> -#include "semaphore.h"
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/message.h"
> +#include "libcamera/semaphore.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file object.h
> diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
> index 1988cb0ee551..38928df785c1 100644
> --- a/src/libcamera/pipeline/ipu3/ipu3.cpp
> +++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
> @@ -17,15 +17,15 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> index 21a1d7f7cca3..e486203e5798 100644
> --- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> +++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
> @@ -21,15 +21,16 @@
>  #include <linux/drm_fourcc.h>
>  #include <linux/videodev2.h>
>
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "ipa_manager.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_manager.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
> +#include "libcamera/v4l2_videodevice.h"
> +
>  #include "staggered_ctrl.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> -#include "v4l2_videodevice.h"
>  #include "vcsm.h"
>
>  namespace libcamera {
> diff --git a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> index 0403c087c686..51ea3f7b0ac5 100644
> --- a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> +++ b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
> @@ -12,9 +12,10 @@
>  #include <unordered_map>
>
>  #include <libcamera/controls.h>
> -#include "log.h"
> -#include "utils.h"
> -#include "v4l2_videodevice.h"
> +
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  /* For logging... */
>  using libcamera::LogCategory;
> diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> index 1e81a0048f09..badd3b655a61 100644
> --- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> +++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
> @@ -20,16 +20,17 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "ipa_manager.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_manager.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
> +
>  #include "timeline.h"
> -#include "utils.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/pipeline/rkisp1/timeline.cpp b/src/libcamera/pipeline/rkisp1/timeline.cpp
> index f6c6434d7b53..6577da8ba93f 100644
> --- a/src/libcamera/pipeline/rkisp1/timeline.cpp
> +++ b/src/libcamera/pipeline/rkisp1/timeline.cpp
> @@ -7,7 +7,7 @@
>
>  #include "timeline.h"
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file timeline.h
> diff --git a/src/libcamera/pipeline/rkisp1/timeline.h b/src/libcamera/pipeline/rkisp1/timeline.h
> index 9d30e4eaf874..ec99e619a1f3 100644
> --- a/src/libcamera/pipeline/rkisp1/timeline.h
> +++ b/src/libcamera/pipeline/rkisp1/timeline.h
> @@ -12,7 +12,7 @@
>
>  #include <libcamera/timer.h>
>
> -#include "utils.h"
> +#include "libcamera/utils.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
> index 6d88776dc2f0..41058512dea8 100644
> --- a/src/libcamera/pipeline/simple/converter.cpp
> +++ b/src/libcamera/pipeline/simple/converter.cpp
> @@ -13,9 +13,9 @@
>  #include <libcamera/geometry.h>
>  #include <libcamera/signal.h>
>
> -#include "log.h"
> -#include "media_device.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
> index 6673606153b8..9cf7cfd1e84b 100644
> --- a/src/libcamera/pipeline/simple/simple.cpp
> +++ b/src/libcamera/pipeline/simple/simple.cpp
> @@ -24,13 +24,13 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  #include "converter.h"
>
> diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> index f0c1337de862..86cc92764285 100644
> --- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> +++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
> @@ -17,13 +17,13 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>
> -#include "device_enumerator.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
> index 128301e3d99b..dddea4ccdebc 100644
> --- a/src/libcamera/pipeline/vimc/vimc.cpp
> +++ b/src/libcamera/pipeline/vimc/vimc.cpp
> @@ -22,16 +22,16 @@
>  #include <libcamera/request.h>
>  #include <libcamera/stream.h>
>
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "ipa_manager.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "pipeline_handler.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_manager.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
> index 254d341fb8a4..49ab1dc393db 100644
> --- a/src/libcamera/pipeline_handler.cpp
> +++ b/src/libcamera/pipeline_handler.cpp
> @@ -5,7 +5,7 @@
>   * pipeline_handler.cpp - Pipeline handler infrastructure
>   */
>
> -#include "pipeline_handler.h"
> +#include "libcamera/pipeline_handler.h"
>
>  #include <sys/sysmacros.h>
>
> @@ -13,10 +13,10 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/camera_manager.h>
>
> -#include "device_enumerator.h"
> -#include "log.h"
> -#include "media_device.h"
> -#include "utils.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file pipeline_handler.h
> diff --git a/src/libcamera/process.cpp b/src/libcamera/process.cpp
> index 3b4d0f10da67..6d54ea9bc217 100644
> --- a/src/libcamera/process.cpp
> +++ b/src/libcamera/process.cpp
> @@ -5,7 +5,7 @@
>   * process.cpp - Process object
>   */
>
> -#include "process.h"
> +#include "libcamera/process.h"
>
>  #include <algorithm>
>  #include <dirent.h>
> @@ -22,8 +22,8 @@
>
>  #include <libcamera/event_notifier.h>
>
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file process.h
> diff --git a/src/libcamera/proxy/ipa_proxy_linux.cpp b/src/libcamera/proxy/ipa_proxy_linux.cpp
> index 9e0f44cf314f..749199b1a1fd 100644
> --- a/src/libcamera/proxy/ipa_proxy_linux.cpp
> +++ b/src/libcamera/proxy/ipa_proxy_linux.cpp
> @@ -10,11 +10,11 @@
>  #include <ipa/ipa_interface.h>
>  #include <ipa/ipa_module_info.h>
>
> -#include "ipa_module.h"
> -#include "ipa_proxy.h"
> -#include "ipc_unixsocket.h"
> -#include "log.h"
> -#include "process.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/ipa_proxy.h"
> +#include "libcamera/ipc_unixsocket.h"
> +#include "libcamera/log.h"
> +#include "libcamera/process.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/proxy/ipa_proxy_thread.cpp b/src/libcamera/proxy/ipa_proxy_thread.cpp
> index 81d2d68ee715..ee54cd7368c8 100644
> --- a/src/libcamera/proxy/ipa_proxy_thread.cpp
> +++ b/src/libcamera/proxy/ipa_proxy_thread.cpp
> @@ -10,11 +10,11 @@
>  #include <ipa/ipa_interface.h>
>  #include <ipa/ipa_module_info.h>
>
> -#include "ipa_context_wrapper.h"
> -#include "ipa_module.h"
> -#include "ipa_proxy.h"
> -#include "log.h"
> -#include "thread.h"
> +#include "libcamera/ipa_context_wrapper.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/ipa_proxy.h"
> +#include "libcamera/log.h"
> +#include "libcamera/thread.h"
>
>  namespace libcamera {
>
> diff --git a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
> index 7d6287c7115b..e3bb0c2d8222 100644
> --- a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
> +++ b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
> @@ -13,10 +13,10 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/logging.h>
>
> -#include "ipa_module.h"
> -#include "ipc_unixsocket.h"
> -#include "log.h"
> -#include "thread.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/ipc_unixsocket.h"
> +#include "libcamera/log.h"
> +#include "libcamera/thread.h"
>
>  using namespace libcamera;
>
> diff --git a/src/libcamera/pub_key.cpp b/src/libcamera/pub_key.cpp
> index 064d2dd200e1..1d809cc61a4f 100644
> --- a/src/libcamera/pub_key.cpp
> +++ b/src/libcamera/pub_key.cpp
> @@ -5,7 +5,7 @@
>   * pub_key.cpp - Public key signature verification
>   */
>
> -#include "pub_key.h"
> +#include "libcamera/pub_key.h"
>
>  #if HAVE_GNUTLS
>  #include <gnutls/abstract.h>
> diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
> index ea33736fbeb5..dd7863b886de 100644
> --- a/src/libcamera/request.cpp
> +++ b/src/libcamera/request.cpp
> @@ -14,8 +14,8 @@
>  #include <libcamera/control_ids.h>
>  #include <libcamera/stream.h>
>
> -#include "camera_controls.h"
> -#include "log.h"
> +#include "libcamera/camera_controls.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file request.h
> diff --git a/src/libcamera/semaphore.cpp b/src/libcamera/semaphore.cpp
> index ce1eae4914ed..110b12ea851c 100644
> --- a/src/libcamera/semaphore.cpp
> +++ b/src/libcamera/semaphore.cpp
> @@ -5,8 +5,8 @@
>   * semaphore.cpp - General-purpose counting semaphore
>   */
>
> -#include "semaphore.h"
> -#include "thread.h"
> +#include "libcamera/semaphore.h"
> +#include "libcamera/thread.h"
>
>  /**
>   * \file semaphore.h
> diff --git a/src/libcamera/signal.cpp b/src/libcamera/signal.cpp
> index 6eab1fa74d42..daf27072d12b 100644
> --- a/src/libcamera/signal.cpp
> +++ b/src/libcamera/signal.cpp
> @@ -7,7 +7,7 @@
>
>  #include <libcamera/signal.h>
>
> -#include "thread.h"
> +#include "libcamera/thread.h"
>
>  /**
>   * \file signal.h
> diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
> index 86c0b17db313..886613b0ee8f 100644
> --- a/src/libcamera/stream.cpp
> +++ b/src/libcamera/stream.cpp
> @@ -15,8 +15,8 @@
>
>  #include <libcamera/request.h>
>
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file stream.h
> diff --git a/src/libcamera/thread.cpp b/src/libcamera/thread.cpp
> index 85293c188c2a..fddbb406b9da 100644
> --- a/src/libcamera/thread.cpp
> +++ b/src/libcamera/thread.cpp
> @@ -5,7 +5,7 @@
>   * thread.cpp - Thread support
>   */
>
> -#include "thread.h"
> +#include "libcamera/thread.h"
>
>  #include <atomic>
>  #include <condition_variable>
> @@ -16,9 +16,9 @@
>
>  #include <libcamera/event_dispatcher.h>
>
> -#include "event_dispatcher_poll.h"
> -#include "log.h"
> -#include "message.h"
> +#include "libcamera/event_dispatcher_poll.h"
> +#include "libcamera/log.h"
> +#include "libcamera/message.h"
>
>  /**
>   * \page thread Thread Support
> diff --git a/src/libcamera/timer.cpp b/src/libcamera/timer.cpp
> index 24da51524efb..693d1f876aa9 100644
> --- a/src/libcamera/timer.cpp
> +++ b/src/libcamera/timer.cpp
> @@ -12,10 +12,10 @@
>  #include <libcamera/camera_manager.h>
>  #include <libcamera/event_dispatcher.h>
>
> -#include "log.h"
> -#include "message.h"
> -#include "thread.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file timer.h
> diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp
> index fbadf350908a..6a59883a6124 100644
> --- a/src/libcamera/utils.cpp
> +++ b/src/libcamera/utils.cpp
> @@ -5,7 +5,7 @@
>   * utils.cpp - Miscellaneous utility functions
>   */
>
> -#include "utils.h"
> +#include "libcamera/utils.h"
>
>  #include <dlfcn.h>
>  #include <elf.h>
> diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp
> index 8e2415f2a6df..b03f3e6ac322 100644
> --- a/src/libcamera/v4l2_controls.cpp
> +++ b/src/libcamera/v4l2_controls.cpp
> @@ -5,7 +5,7 @@
>   * v4l2_controls.cpp - V4L2 Controls Support
>   */
>
> -#include "v4l2_controls.h"
> +#include "libcamera/v4l2_controls.h"
>
>  #include <string.h>
>
> diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
> index d08ab531f034..fc458da1245c 100644
> --- a/src/libcamera/v4l2_device.cpp
> +++ b/src/libcamera/v4l2_device.cpp
> @@ -5,7 +5,7 @@
>   * v4l2_device.cpp - Common base for V4L2 video devices and subdevices
>   */
>
> -#include "v4l2_device.h"
> +#include "libcamera/v4l2_device.h"
>
>  #include <fcntl.h>
>  #include <iomanip>
> @@ -14,9 +14,9 @@
>  #include <sys/syscall.h>
>  #include <unistd.h>
>
> -#include "log.h"
> -#include "utils.h"
> -#include "v4l2_controls.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_controls.h"
>
>  /**
>   * \file v4l2_device.h
> diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp
> index 561f9327780a..ff1047771e85 100644
> --- a/src/libcamera/v4l2_pixelformat.cpp
> +++ b/src/libcamera/v4l2_pixelformat.cpp
> @@ -6,7 +6,7 @@
>   * v4l2_pixelformat.cpp - V4L2 Pixel Format
>   */
>
> -#include "v4l2_pixelformat.h"
> +#include "libcamera/v4l2_pixelformat.h"
>
>  #include <ctype.h>
>  #include <map>
> @@ -16,8 +16,8 @@
>
>  #include <libcamera/pixelformats.h>
>
> -#include "formats.h"
> -#include "log.h"
> +#include "libcamera/formats.h"
> +#include "libcamera/log.h"
>
>  /**
>   * \file v4l2_pixelformat.h
> diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
> index 2b756178fc0a..d5f1cd857ed1 100644
> --- a/src/libcamera/v4l2_subdevice.cpp
> +++ b/src/libcamera/v4l2_subdevice.cpp
> @@ -5,7 +5,7 @@
>   * v4l2_subdevice.cpp - V4L2 Subdevice
>   */
>
> -#include "v4l2_subdevice.h"
> +#include "libcamera/v4l2_subdevice.h"
>
>  #include <fcntl.h>
>  #include <iomanip>
> @@ -19,10 +19,10 @@
>
>  #include <libcamera/geometry.h>
>
> -#include "log.h"
> -#include "media_device.h"
> -#include "media_object.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/media_object.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file v4l2_subdevice.h
> diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
> index 4b9f8b5c0413..45ec6a46c013 100644
> --- a/src/libcamera/v4l2_videodevice.cpp
> +++ b/src/libcamera/v4l2_videodevice.cpp
> @@ -5,7 +5,7 @@
>   * v4l2_videodevice.cpp - V4L2 Video Device
>   */
>
> -#include "v4l2_videodevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  #include <fcntl.h>
>  #include <iomanip>
> @@ -23,10 +23,10 @@
>  #include <libcamera/event_notifier.h>
>  #include <libcamera/file_descriptor.h>
>
> -#include "log.h"
> -#include "media_device.h"
> -#include "media_object.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/media_object.h"
> +#include "libcamera/utils.h"
>
>  /**
>   * \file v4l2_videodevice.h
> diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
> index ecbb70acfb8e..e16780387059 100644
> --- a/src/v4l2/v4l2_camera.cpp
> +++ b/src/v4l2/v4l2_camera.cpp
> @@ -9,7 +9,7 @@
>
>  #include <errno.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  using namespace libcamera;
>
> diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
> index 130995d95eb4..012e80993265 100644
> --- a/src/v4l2/v4l2_camera.h
> +++ b/src/v4l2/v4l2_camera.h
> @@ -17,7 +17,7 @@
>  #include <libcamera/file_descriptor.h>
>  #include <libcamera/framebuffer_allocator.h>
>
> -#include "semaphore.h"
> +#include "libcamera/semaphore.h"
>
>  using namespace libcamera;
>
> diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
> index 47d0528b324f..4ad0c1edf175 100644
> --- a/src/v4l2/v4l2_camera_proxy.cpp
> +++ b/src/v4l2/v4l2_camera_proxy.cpp
> @@ -17,8 +17,9 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/object.h>
>
> -#include "log.h"
> -#include "utils.h"
> +#include "libcamera/log.h"
> +#include "libcamera/utils.h"
> +
>  #include "v4l2_camera.h"
>  #include "v4l2_compat_manager.h"
>
> diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
> index 961d06b3e39a..6b6b3b16344f 100644
> --- a/src/v4l2/v4l2_compat_manager.cpp
> +++ b/src/v4l2/v4l2_compat_manager.cpp
> @@ -22,7 +22,7 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/camera_manager.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
>
>  using namespace libcamera;
>
> diff --git a/test/byte-stream-buffer.cpp b/test/byte-stream-buffer.cpp
> index bc1d462ebf6f..22b8e99eed53 100644
> --- a/test/byte-stream-buffer.cpp
> +++ b/test/byte-stream-buffer.cpp
> @@ -8,7 +8,8 @@
>  #include <array>
>  #include <iostream>
>
> -#include "byte_stream_buffer.h"
> +#include "libcamera/byte_stream_buffer.h"
> +
>  #include "test.h"
>
>  using namespace std;
> diff --git a/test/camera-sensor.cpp b/test/camera-sensor.cpp
> index 6069d668e495..d37a9e707d2e 100644
> --- a/test/camera-sensor.cpp
> +++ b/test/camera-sensor.cpp
> @@ -10,11 +10,11 @@
>
>  #include <linux/media-bus-format.h>
>
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "utils.h"
> -#include "v4l2_subdevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_subdevice.h"
>
>  #include "test.h"
>
> diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp
> index 3f392cdc0732..b79cb998c96a 100644
> --- a/test/camera/buffer_import.cpp
> +++ b/test/camera/buffer_import.cpp
> @@ -12,9 +12,9 @@
>  #include <numeric>
>  #include <vector>
>
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  #include "buffer_source.h"
>  #include "camera_test.h"
> diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp
> index eeb702db095b..0ce02cd8145d 100644
> --- a/test/controls/control_info_map.cpp
> +++ b/test/controls/control_info_map.cpp
> @@ -12,7 +12,7 @@
>  #include <libcamera/control_ids.h>
>  #include <libcamera/controls.h>
>
> -#include "camera_controls.h"
> +#include "libcamera/camera_controls.h"
>
>  #include "camera_test.h"
>  #include "test.h"
> diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
> index d51ec47d61d3..d21cd3ff1d4b 100644
> --- a/test/controls/control_list.cpp
> +++ b/test/controls/control_list.cpp
> @@ -12,7 +12,7 @@
>  #include <libcamera/control_ids.h>
>  #include <libcamera/controls.h>
>
> -#include "camera_controls.h"
> +#include "libcamera/camera_controls.h"
>
>  #include "camera_test.h"
>  #include "test.h"
> diff --git a/test/event-dispatcher.cpp b/test/event-dispatcher.cpp
> index 9f9cf17818f2..2417920f69ec 100644
> --- a/test/event-dispatcher.cpp
> +++ b/test/event-dispatcher.cpp
> @@ -13,8 +13,9 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/event-thread.cpp b/test/event-thread.cpp
> index 01120733eca4..acd3ddedd3d4 100644
> --- a/test/event-thread.cpp
> +++ b/test/event-thread.cpp
> @@ -13,8 +13,9 @@
>  #include <libcamera/event_notifier.h>
>  #include <libcamera/timer.h>
>
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/event.cpp b/test/event.cpp
> index 816060cc44a2..a33e9116c1bb 100644
> --- a/test/event.cpp
> +++ b/test/event.cpp
> @@ -13,8 +13,9 @@
>  #include <libcamera/event_notifier.h>
>  #include <libcamera/timer.h>
>
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/file-descriptor.cpp b/test/file-descriptor.cpp
> index e467f3a7145e..13fc7ce45eb8 100644
> --- a/test/file-descriptor.cpp
> +++ b/test/file-descriptor.cpp
> @@ -13,8 +13,9 @@
>
>  #include <libcamera/file_descriptor.h>
>
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "utils.h"
>
>  using namespace libcamera;
>  using namespace std;
> diff --git a/test/file.cpp b/test/file.cpp
> index 6558399808f8..d711d3b4d252 100644
> --- a/test/file.cpp
> +++ b/test/file.cpp
> @@ -13,7 +13,8 @@
>  #include <sys/types.h>
>  #include <unistd.h>
>
> -#include "file.h"
> +#include "libcamera/file.h"
> +
>  #include "test.h"
>
>  using namespace std;
> diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp
> index 7fa88efee089..9f10fe17414b 100644
> --- a/test/ipa/ipa_interface_test.cpp
> +++ b/test/ipa/ipa_interface_test.cpp
> @@ -18,12 +18,13 @@
>
>  #include <ipa/ipa_vimc.h>
>
> -#include "device_enumerator.h"
> -#include "ipa_manager.h"
> -#include "ipa_module.h"
> -#include "pipeline_handler.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_manager.h"
> +#include "libcamera/ipa_module.h"
> +#include "libcamera/pipeline_handler.h"
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/ipa/ipa_module_test.cpp b/test/ipa/ipa_module_test.cpp
> index e3aee190b410..2847098391ee 100644
> --- a/test/ipa/ipa_module_test.cpp
> +++ b/test/ipa/ipa_module_test.cpp
> @@ -8,7 +8,7 @@
>  #include <iostream>
>  #include <string.h>
>
> -#include "ipa_module.h"
> +#include "libcamera/ipa_module.h"
>
>  #include "test.h"
>
> diff --git a/test/ipa/ipa_wrappers_test.cpp b/test/ipa/ipa_wrappers_test.cpp
> index 4de132123525..32830dea74c7 100644
> --- a/test/ipa/ipa_wrappers_test.cpp
> +++ b/test/ipa/ipa_wrappers_test.cpp
> @@ -15,11 +15,11 @@
>  #include <libcamera/controls.h>
>  #include <libipa/ipa_interface_wrapper.h>
>
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "ipa_context_wrapper.h"
> -#include "media_device.h"
> -#include "v4l2_subdevice.h"
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/ipa_context_wrapper.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_subdevice.h"
>
>  #include "test.h"
>
> diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
> index f53042b88720..0d10f40de03b 100644
> --- a/test/ipc/unixsocket.cpp
> +++ b/test/ipc/unixsocket.cpp
> @@ -18,10 +18,11 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>
> -#include "ipc_unixsocket.h"
> +#include "libcamera/ipc_unixsocket.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "thread.h"
> -#include "utils.h"
>
>  #define CMD_CLOSE	0
>  #define CMD_REVERSE	1
> diff --git a/test/libtest/buffer_source.cpp b/test/libtest/buffer_source.cpp
> index d1dad2a0f8cf..8d7ab8da78c5 100644
> --- a/test/libtest/buffer_source.cpp
> +++ b/test/libtest/buffer_source.cpp
> @@ -10,7 +10,7 @@
>  #include <iostream>
>  #include <memory>
>
> -#include "device_enumerator.h"
> +#include "libcamera/device_enumerator.h"
>
>  #include "test.h"
>
> diff --git a/test/libtest/buffer_source.h b/test/libtest/buffer_source.h
> index ae0879c99480..15b49d14074d 100644
> --- a/test/libtest/buffer_source.h
> +++ b/test/libtest/buffer_source.h
> @@ -9,8 +9,8 @@
>
>  #include <libcamera/libcamera.h>
>
> -#include "media_device.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  using namespace libcamera;
>
> diff --git a/test/log/log_api.cpp b/test/log/log_api.cpp
> index 33622f841253..39e2f775f6df 100644
> --- a/test/log/log_api.cpp
> +++ b/test/log/log_api.cpp
> @@ -18,7 +18,8 @@
>
>  #include <libcamera/logging.h>
>
> -#include "log.h"
> +#include "libcamera/log.h"
> +
>  #include "test.h"
>
>  using namespace std;
> diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
> index 2df4aa43713c..82114a76b7ac 100644
> --- a/test/log/log_process.cpp
> +++ b/test/log/log_process.cpp
> @@ -18,11 +18,12 @@
>  #include <libcamera/logging.h>
>  #include <libcamera/timer.h>
>
> -#include "log.h"
> -#include "process.h"
> +#include "libcamera/log.h"
> +#include "libcamera/process.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "thread.h"
> -#include "utils.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/media_device/media_device_print_test.cpp b/test/media_device/media_device_print_test.cpp
> index 5018906c75e7..eadfad4061c9 100644
> --- a/test/media_device/media_device_print_test.cpp
> +++ b/test/media_device/media_device_print_test.cpp
> @@ -10,7 +10,7 @@
>  #include <sys/stat.h>
>  #include <unistd.h>
>
> -#include "media_device.h"
> +#include "libcamera/media_device.h"
>
>  #include "test.h"
>
> diff --git a/test/media_device/media_device_test.h b/test/media_device/media_device_test.h
> index cdbd14841d5c..87be6ff8e486 100644
> --- a/test/media_device/media_device_test.h
> +++ b/test/media_device/media_device_test.h
> @@ -9,8 +9,8 @@
>
>  #include <memory>
>
> -#include "device_enumerator.h"
> -#include "media_device.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
>
>  #include "test.h"
>
> diff --git a/test/message.cpp b/test/message.cpp
> index 478bc79dffa6..1fa2f69254fb 100644
> --- a/test/message.cpp
> +++ b/test/message.cpp
> @@ -9,8 +9,9 @@
>  #include <iostream>
>  #include <thread>
>
> -#include "message.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
>
>  using namespace std;
> diff --git a/test/object-invoke.cpp b/test/object-invoke.cpp
> index fa162c838c78..7c1b704f4096 100644
> --- a/test/object-invoke.cpp
> +++ b/test/object-invoke.cpp
> @@ -11,8 +11,9 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/object.h>
>
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/object.cpp b/test/object.cpp
> index 16118971c755..5e38308a8e2d 100644
> --- a/test/object.cpp
> +++ b/test/object.cpp
> @@ -9,8 +9,8 @@
>
>  #include <libcamera/object.h>
>
> -#include "message.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
>
>  #include "test.h"
>
> diff --git a/test/pipeline/ipu3/ipu3_pipeline_test.cpp b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
> index a5c6be0955df..f1edc1dd59be 100644
> --- a/test/pipeline/ipu3/ipu3_pipeline_test.cpp
> +++ b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
> @@ -13,9 +13,10 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/camera_manager.h>
>
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "media_object.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/media_object.h"
> +
>  #include "test.h"
>
>  using namespace std;
> diff --git a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
> index d46c928fbaf7..0f40485155b4 100644
> --- a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
> +++ b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
> @@ -16,9 +16,10 @@
>  #include <libcamera/camera.h>
>  #include <libcamera/camera_manager.h>
>
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "media_object.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/media_object.h"
> +
>  #include "test.h"
>
>  using namespace std;
> diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
> index 7e7b3c2c8bf3..6a3be85b6260 100644
> --- a/test/process/process_test.cpp
> +++ b/test/process/process_test.cpp
> @@ -12,10 +12,11 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>
> -#include "process.h"
> +#include "libcamera/process.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "thread.h"
> -#include "utils.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/serialization/control_serialization.cpp b/test/serialization/control_serialization.cpp
> index 111365241eb8..c82471b5f627 100644
> --- a/test/serialization/control_serialization.cpp
> +++ b/test/serialization/control_serialization.cpp
> @@ -11,8 +11,9 @@
>  #include <libcamera/control_ids.h>
>  #include <libcamera/controls.h>
>
> -#include "byte_stream_buffer.h"
> -#include "control_serializer.h"
> +#include "libcamera/byte_stream_buffer.h"
> +#include "libcamera/control_serializer.h"
> +
>  #include "serialization_test.h"
>  #include "test.h"
>
> diff --git a/test/signal-threads.cpp b/test/signal-threads.cpp
> index f77733ebc030..3682701a19a8 100644
> --- a/test/signal-threads.cpp
> +++ b/test/signal-threads.cpp
> @@ -9,10 +9,11 @@
>  #include <iostream>
>  #include <thread>
>
> -#include "message.h"
> -#include "thread.h"
> +#include "libcamera/message.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "utils.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/threads.cpp b/test/threads.cpp
> index 0454761de12c..b36c847e94c0 100644
> --- a/test/threads.cpp
> +++ b/test/threads.cpp
> @@ -9,7 +9,8 @@
>  #include <iostream>
>  #include <thread>
>
> -#include "thread.h"
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
>
>  using namespace std;
> diff --git a/test/timer-thread.cpp b/test/timer-thread.cpp
> index 32853b4e80ef..30a843f1b12c 100644
> --- a/test/timer-thread.cpp
> +++ b/test/timer-thread.cpp
> @@ -11,8 +11,9 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/timer.cpp b/test/timer.cpp
> index 2bdb006edccb..98eaa7ac043c 100644
> --- a/test/timer.cpp
> +++ b/test/timer.cpp
> @@ -11,8 +11,9 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>
> +#include "libcamera/thread.h"
> +
>  #include "test.h"
> -#include "thread.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/utils.cpp b/test/utils.cpp
> index 55ce9365a53e..efea38b6a8f4 100644
> --- a/test/utils.cpp
> +++ b/test/utils.cpp
> @@ -12,8 +12,9 @@
>
>  #include <libcamera/geometry.h>
>
> +#include "libcamera/utils.h"
> +
>  #include "test.h"
> -#include "utils.h"
>
>  using namespace std;
>  using namespace libcamera;
> diff --git a/test/v4l2_subdevice/list_formats.cpp b/test/v4l2_subdevice/list_formats.cpp
> index 067dc5ed30f4..7c757b46811c 100644
> --- a/test/v4l2_subdevice/list_formats.cpp
> +++ b/test/v4l2_subdevice/list_formats.cpp
> @@ -11,7 +11,8 @@
>
>  #include <libcamera/geometry.h>
>
> -#include "v4l2_subdevice.h"
> +#include "libcamera/v4l2_subdevice.h"
> +
>  #include "v4l2_subdevice_test.h"
>
>  using namespace std;
> diff --git a/test/v4l2_subdevice/test_formats.cpp b/test/v4l2_subdevice/test_formats.cpp
> index 5cf5d5664b04..7a1f4c48c8e3 100644
> --- a/test/v4l2_subdevice/test_formats.cpp
> +++ b/test/v4l2_subdevice/test_formats.cpp
> @@ -8,7 +8,8 @@
>  #include <iostream>
>  #include <limits.h>
>
> -#include "v4l2_subdevice.h"
> +#include "libcamera/v4l2_subdevice.h"
> +
>  #include "v4l2_subdevice_test.h"
>
>  using namespace std;
> diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.cpp b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
> index 562a638cb28e..35f9b655a7ac 100644
> --- a/test/v4l2_subdevice/v4l2_subdevice_test.cpp
> +++ b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
> @@ -9,9 +9,10 @@
>  #include <string.h>
>  #include <sys/stat.h>
>
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "v4l2_subdevice.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_subdevice.h"
> +
>  #include "v4l2_subdevice_test.h"
>
>  using namespace std;
> diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.h b/test/v4l2_subdevice/v4l2_subdevice_test.h
> index 3bce6691f8ef..7097ba1c2659 100644
> --- a/test/v4l2_subdevice/v4l2_subdevice_test.h
> +++ b/test/v4l2_subdevice/v4l2_subdevice_test.h
> @@ -10,10 +10,11 @@
>
>  #include <libcamera/buffer.h>
>
> -#include "device_enumerator.h"
> -#include "media_device.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_subdevice.h"
> +
>  #include "test.h"
> -#include "v4l2_subdevice.h"
>
>  using namespace libcamera;
>
> diff --git a/test/v4l2_videodevice/buffer_sharing.cpp b/test/v4l2_videodevice/buffer_sharing.cpp
> index 14d3055ad7d1..a03b9dd29819 100644
> --- a/test/v4l2_videodevice/buffer_sharing.cpp
> +++ b/test/v4l2_videodevice/buffer_sharing.cpp
> @@ -16,7 +16,8 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>
> -#include "thread.h"
> +#include "libcamera/thread.h"
> +
>  #include "v4l2_videodevice_test.h"
>
>  class BufferSharingTest : public V4L2VideoDeviceTest
> diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
> index b38aabc6263d..ae52cb92151a 100644
> --- a/test/v4l2_videodevice/capture_async.cpp
> +++ b/test/v4l2_videodevice/capture_async.cpp
> @@ -11,7 +11,8 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>
> -#include "thread.h"
> +#include "libcamera/thread.h"
> +
>  #include "v4l2_videodevice_test.h"
>
>  class CaptureAsyncTest : public V4L2VideoDeviceTest
> diff --git a/test/v4l2_videodevice/controls.cpp b/test/v4l2_videodevice/controls.cpp
> index 347af2112f1a..4ff60110f007 100644
> --- a/test/v4l2_videodevice/controls.cpp
> +++ b/test/v4l2_videodevice/controls.cpp
> @@ -10,7 +10,7 @@
>  #include <iostream>
>  #include <limits.h>
>
> -#include "v4l2_videodevice.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  #include "v4l2_videodevice_test.h"
>
> diff --git a/test/v4l2_videodevice/formats.cpp b/test/v4l2_videodevice/formats.cpp
> index a74214215faf..bfd5bf5bbbdf 100644
> --- a/test/v4l2_videodevice/formats.cpp
> +++ b/test/v4l2_videodevice/formats.cpp
> @@ -8,8 +8,8 @@
>  #include <iostream>
>  #include <limits.h>
>
> -#include "utils.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/utils.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  #include "v4l2_videodevice_test.h"
>
> diff --git a/test/v4l2_videodevice/v4l2_m2mdevice.cpp b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> index d20e5dfc3077..57a81e40725d 100644
> --- a/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> +++ b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
> @@ -11,10 +11,10 @@
>  #include <libcamera/event_dispatcher.h>
>  #include <libcamera/timer.h>
>
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "thread.h"
> -#include "v4l2_videodevice.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/thread.h"
> +#include "libcamera/v4l2_videodevice.h"
>
>  #include "test.h"
>
> diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.cpp b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
> index 93b9e72da5b4..cf260fffa4c7 100644
> --- a/test/v4l2_videodevice/v4l2_videodevice_test.cpp
> +++ b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
> @@ -9,11 +9,11 @@
>
>  #include <linux/media-bus-format.h>
>
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +
>  #include "v4l2_videodevice_test.h"
>
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -
>  using namespace std;
>  using namespace libcamera;
>
> diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.h b/test/v4l2_videodevice/v4l2_videodevice_test.h
> index 9acaceb84fe0..5d4f5f1995ed 100644
> --- a/test/v4l2_videodevice/v4l2_videodevice_test.h
> +++ b/test/v4l2_videodevice/v4l2_videodevice_test.h
> @@ -11,14 +11,14 @@
>
>  #include <libcamera/buffer.h>
>
> +#include "libcamera/camera_sensor.h"
> +#include "libcamera/device_enumerator.h"
> +#include "libcamera/media_device.h"
> +#include "libcamera/v4l2_subdevice.h"
> +#include "libcamera/v4l2_videodevice.h"
> +
>  #include "test.h"
>
> -#include "camera_sensor.h"
> -#include "device_enumerator.h"
> -#include "media_device.h"
> -#include "v4l2_subdevice.h"
> -#include "v4l2_videodevice.h"
> -
>  using namespace libcamera;
>
>  class V4L2VideoDeviceTest : public Test
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel@lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel

Patch

diff --git a/Documentation/Doxyfile.in b/Documentation/Doxyfile.in
index 86bcc4d00f88..f9c946823b54 100644
--- a/Documentation/Doxyfile.in
+++ b/Documentation/Doxyfile.in
@@ -844,8 +844,8 @@  RECURSIVE              = YES
 EXCLUDE                = @TOP_SRCDIR@/include/libcamera/span.h \
 			 @TOP_SRCDIR@/src/libcamera/device_enumerator_sysfs.cpp \
 			 @TOP_SRCDIR@/src/libcamera/device_enumerator_udev.cpp \
-			 @TOP_SRCDIR@/src/libcamera/include/device_enumerator_sysfs.h \
-			 @TOP_SRCDIR@/src/libcamera/include/device_enumerator_udev.h \
+			 @TOP_SRCDIR@/src/libcamera/include/libcamera/device_enumerator_sysfs.h \
+			 @TOP_SRCDIR@/src/libcamera/include/libcamera/device_enumerator_udev.h \
 			 @TOP_SRCDIR@/src/libcamera/pipeline/ \
 			 @TOP_SRCDIR@/src/libcamera/proxy/
 
diff --git a/src/android/camera3_hal.cpp b/src/android/camera3_hal.cpp
index 34301ed971b6..11ce8c1ef230 100644
--- a/src/android/camera3_hal.cpp
+++ b/src/android/camera3_hal.cpp
@@ -7,9 +7,10 @@ 
 
 #include <hardware/camera_common.h>
 
+#include "libcamera/log.h"
+
 #include "camera_device.h"
 #include "camera_hal_manager.h"
-#include "log.h"
 
 using namespace libcamera;
 
diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 76af70ebccfa..a82459602d05 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -11,8 +11,8 @@ 
 #include <libcamera/controls.h>
 #include <libcamera/property_ids.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 #include "camera_metadata.h"
 
diff --git a/src/android/camera_device.h b/src/android/camera_device.h
index 55eac317e0e4..3a603c5ba5fb 100644
--- a/src/android/camera_device.h
+++ b/src/android/camera_device.h
@@ -16,7 +16,7 @@ 
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "message.h"
+#include "libcamera/message.h"
 
 class CameraMetadata;
 
diff --git a/src/android/camera_hal_manager.cpp b/src/android/camera_hal_manager.cpp
index 5bd3bdba8a55..20d4cd43a831 100644
--- a/src/android/camera_hal_manager.cpp
+++ b/src/android/camera_hal_manager.cpp
@@ -9,7 +9,7 @@ 
 
 #include <libcamera/camera.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 #include "camera_device.h"
 
diff --git a/src/android/camera_metadata.cpp b/src/android/camera_metadata.cpp
index 76965108c08b..0dd7a9648398 100644
--- a/src/android/camera_metadata.cpp
+++ b/src/android/camera_metadata.cpp
@@ -7,7 +7,7 @@ 
 
 #include "camera_metadata.h"
 
-#include "log.h"
+#include "libcamera/log.h"
 
 using namespace libcamera;
 
diff --git a/src/ipa/libipa/ipa_interface_wrapper.cpp b/src/ipa/libipa/ipa_interface_wrapper.cpp
index 21d8c98bddee..b55fe36c6bbf 100644
--- a/src/ipa/libipa/ipa_interface_wrapper.cpp
+++ b/src/ipa/libipa/ipa_interface_wrapper.cpp
@@ -14,8 +14,8 @@ 
 
 #include <ipa/ipa_interface.h>
 
-#include "byte_stream_buffer.h"
-#include "camera_sensor.h"
+#include "libcamera/byte_stream_buffer.h"
+#include "libcamera/camera_sensor.h"
 
 /**
  * \file ipa_interface_wrapper.h
diff --git a/src/ipa/libipa/ipa_interface_wrapper.h b/src/ipa/libipa/ipa_interface_wrapper.h
index 56507aafd81e..17e8016755ab 100644
--- a/src/ipa/libipa/ipa_interface_wrapper.h
+++ b/src/ipa/libipa/ipa_interface_wrapper.h
@@ -11,7 +11,7 @@ 
 
 #include <ipa/ipa_interface.h>
 
-#include "control_serializer.h"
+#include "libcamera/control_serializer.h"
 
 namespace libcamera {
 
diff --git a/src/ipa/raspberrypi/cam_helper.cpp b/src/ipa/raspberrypi/cam_helper.cpp
index 7f05d2c6b368..c835c7df7969 100644
--- a/src/ipa/raspberrypi/cam_helper.cpp
+++ b/src/ipa/raspberrypi/cam_helper.cpp
@@ -11,11 +11,11 @@ 
 #include <map>
 #include <string.h>
 
+#include "libcamera/v4l2_videodevice.h"
+
 #include "cam_helper.hpp"
 #include "md_parser.hpp"
 
-#include "v4l2_videodevice.h"
-
 using namespace RPi;
 
 static std::map<std::string, CamHelperCreateFunc> cam_helpers;
diff --git a/src/ipa/raspberrypi/cam_helper.hpp b/src/ipa/raspberrypi/cam_helper.hpp
index 0c8aa29a4cff..c774df500d05 100644
--- a/src/ipa/raspberrypi/cam_helper.hpp
+++ b/src/ipa/raspberrypi/cam_helper.hpp
@@ -11,7 +11,7 @@ 
 #include "camera_mode.h"
 #include "md_parser.hpp"
 
-#include "v4l2_videodevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace RPi {
 
diff --git a/src/ipa/raspberrypi/raspberrypi.cpp b/src/ipa/raspberrypi/raspberrypi.cpp
index 3bcc08156902..d620dc762323 100644
--- a/src/ipa/raspberrypi/raspberrypi.cpp
+++ b/src/ipa/raspberrypi/raspberrypi.cpp
@@ -22,6 +22,10 @@ 
 #include <libcamera/span.h>
 #include <libipa/ipa_interface_wrapper.h>
 
+#include "libcamera/camera_sensor.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
+
 #include <linux/bcm2835-isp.h>
 
 #include "agc_algorithm.hpp"
@@ -44,10 +48,6 @@ 
 #include "sdn_status.h"
 #include "sharpen_status.h"
 
-#include "camera_sensor.h"
-#include "log.h"
-#include "utils.h"
-
 namespace libcamera {
 
 /* Configure the sensor with these values initially. */
diff --git a/src/ipa/rkisp1/rkisp1.cpp b/src/ipa/rkisp1/rkisp1.cpp
index bfa88418fa7b..abdc36c2dfa6 100644
--- a/src/ipa/rkisp1/rkisp1.cpp
+++ b/src/ipa/rkisp1/rkisp1.cpp
@@ -22,8 +22,8 @@ 
 #include <libcamera/request.h>
 #include <libipa/ipa_interface_wrapper.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 namespace libcamera {
 
diff --git a/src/ipa/vimc/vimc.cpp b/src/ipa/vimc/vimc.cpp
index 9271f2d8acff..11f0b9f28065 100644
--- a/src/ipa/vimc/vimc.cpp
+++ b/src/ipa/vimc/vimc.cpp
@@ -19,8 +19,8 @@ 
 
 #include <libipa/ipa_interface_wrapper.h>
 
-#include "file.h"
-#include "log.h"
+#include "libcamera/file.h"
+#include "libcamera/log.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/bound_method.cpp b/src/libcamera/bound_method.cpp
index 9aa59dc3678f..037ccbaa268a 100644
--- a/src/libcamera/bound_method.cpp
+++ b/src/libcamera/bound_method.cpp
@@ -7,9 +7,9 @@ 
 
 #include <libcamera/bound_method.h>
 
-#include "message.h"
-#include "semaphore.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/semaphore.h"
+#include "libcamera/thread.h"
 
 /**
  * \file bound_method.h
diff --git a/src/libcamera/buffer.cpp b/src/libcamera/buffer.cpp
index 0c5e56cf1062..be5e56814150 100644
--- a/src/libcamera/buffer.cpp
+++ b/src/libcamera/buffer.cpp
@@ -12,7 +12,7 @@ 
 #include <sys/mman.h>
 #include <unistd.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file buffer.h
diff --git a/src/libcamera/byte_stream_buffer.cpp b/src/libcamera/byte_stream_buffer.cpp
index 20d6a6552c5f..e102db1fe684 100644
--- a/src/libcamera/byte_stream_buffer.cpp
+++ b/src/libcamera/byte_stream_buffer.cpp
@@ -5,12 +5,12 @@ 
  * byte_stream_buffer.cpp - Byte stream buffer
  */
 
-#include "byte_stream_buffer.h"
+#include "libcamera/byte_stream_buffer.h"
 
 #include <stdint.h>
 #include <string.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/camera.cpp b/src/libcamera/camera.cpp
index 8c3bb2c2a01f..927ce2711249 100644
--- a/src/libcamera/camera.cpp
+++ b/src/libcamera/camera.cpp
@@ -14,9 +14,9 @@ 
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "log.h"
-#include "pipeline_handler.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
 
 /**
  * \file camera.h
diff --git a/src/libcamera/camera_controls.cpp b/src/libcamera/camera_controls.cpp
index 59dcede2ca36..5c5d1d5ef7a1 100644
--- a/src/libcamera/camera_controls.cpp
+++ b/src/libcamera/camera_controls.cpp
@@ -5,7 +5,7 @@ 
  * camera_controls.cpp - Camera controls
  */
 
-#include "camera_controls.h"
+#include "libcamera/camera_controls.h"
 
 #include <libcamera/camera.h>
 #include <libcamera/controls.h>
diff --git a/src/libcamera/camera_manager.cpp b/src/libcamera/camera_manager.cpp
index fddf7349ec15..580ac5b2816a 100644
--- a/src/libcamera/camera_manager.cpp
+++ b/src/libcamera/camera_manager.cpp
@@ -13,12 +13,12 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/event_dispatcher.h>
 
-#include "device_enumerator.h"
-#include "event_dispatcher_poll.h"
-#include "log.h"
-#include "pipeline_handler.h"
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/event_dispatcher_poll.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file camera_manager.h
diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor.cpp
index 31a916a92722..d65ab32351a8 100644
--- a/src/libcamera/camera_sensor.cpp
+++ b/src/libcamera/camera_sensor.cpp
@@ -5,7 +5,7 @@ 
  * camera_sensor.cpp - A camera sensor
  */
 
-#include "camera_sensor.h"
+#include "libcamera/camera_sensor.h"
 
 #include <algorithm>
 #include <float.h>
@@ -16,9 +16,9 @@ 
 
 #include <libcamera/property_ids.h>
 
-#include "formats.h"
-#include "utils.h"
-#include "v4l2_subdevice.h"
+#include "libcamera/formats.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_subdevice.h"
 
 /**
  * \file camera_sensor.h
diff --git a/src/libcamera/control_serializer.cpp b/src/libcamera/control_serializer.cpp
index fcff5e56fbf7..b2c6512575ab 100644
--- a/src/libcamera/control_serializer.cpp
+++ b/src/libcamera/control_serializer.cpp
@@ -5,7 +5,7 @@ 
  * control_serializer.cpp - Control (de)serializer
  */
 
-#include "control_serializer.h"
+#include "libcamera/control_serializer.h"
 
 #include <algorithm>
 #include <memory>
@@ -16,8 +16,8 @@ 
 #include <libcamera/controls.h>
 #include <libcamera/span.h>
 
-#include "byte_stream_buffer.h"
-#include "log.h"
+#include "libcamera/byte_stream_buffer.h"
+#include "libcamera/log.h"
 
 /**
  * \file control_serializer.h
diff --git a/src/libcamera/control_validator.cpp b/src/libcamera/control_validator.cpp
index 8e5cf3c3e3ee..925dad05673f 100644
--- a/src/libcamera/control_validator.cpp
+++ b/src/libcamera/control_validator.cpp
@@ -5,7 +5,7 @@ 
  * control_validator.cpp - Control validator
  */
 
-#include "control_validator.h"
+#include "libcamera/control_validator.h"
 
 /**
  * \file control_validator.h
diff --git a/src/libcamera/controls.cpp b/src/libcamera/controls.cpp
index 08df7f29e938..4e3b2c041f28 100644
--- a/src/libcamera/controls.cpp
+++ b/src/libcamera/controls.cpp
@@ -12,9 +12,9 @@ 
 #include <string>
 #include <string.h>
 
-#include "control_validator.h"
-#include "log.h"
-#include "utils.h"
+#include "libcamera/control_validator.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 /**
  * \file controls.h
diff --git a/src/libcamera/device_enumerator.cpp b/src/libcamera/device_enumerator.cpp
index dd17e3e32e6c..21ddc1735115 100644
--- a/src/libcamera/device_enumerator.cpp
+++ b/src/libcamera/device_enumerator.cpp
@@ -5,14 +5,14 @@ 
  * device_enumerator.cpp - Enumeration and matching
  */
 
-#include "device_enumerator.h"
-#include "device_enumerator_sysfs.h"
-#include "device_enumerator_udev.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/device_enumerator_sysfs.h"
+#include "libcamera/device_enumerator_udev.h"
 
 #include <string.h>
 
-#include "log.h"
-#include "media_device.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
 
 /**
  * \file device_enumerator.h
diff --git a/src/libcamera/device_enumerator_sysfs.cpp b/src/libcamera/device_enumerator_sysfs.cpp
index 3446db59e9d4..44b32fac5140 100644
--- a/src/libcamera/device_enumerator_sysfs.cpp
+++ b/src/libcamera/device_enumerator_sysfs.cpp
@@ -5,7 +5,7 @@ 
  * device_enumerator_sysfs.cpp - sysfs-based device enumerator
  */
 
-#include "device_enumerator_sysfs.h"
+#include "libcamera/device_enumerator_sysfs.h"
 
 #include <dirent.h>
 #include <fcntl.h>
@@ -17,8 +17,8 @@ 
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "log.h"
-#include "media_device.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/device_enumerator_udev.cpp b/src/libcamera/device_enumerator_udev.cpp
index 2e33c898aeef..27dd9e6da68b 100644
--- a/src/libcamera/device_enumerator_udev.cpp
+++ b/src/libcamera/device_enumerator_udev.cpp
@@ -5,7 +5,7 @@ 
  * device_enumerator_udev.cpp - udev-based device enumerator
  */
 
-#include "device_enumerator_udev.h"
+#include "libcamera/device_enumerator_udev.h"
 
 #include <algorithm>
 #include <fcntl.h>
@@ -19,8 +19,8 @@ 
 
 #include <libcamera/event_notifier.h>
 
-#include "log.h"
-#include "media_device.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/event_dispatcher.cpp b/src/libcamera/event_dispatcher.cpp
index bb4fddfffe86..b318e2a8726b 100644
--- a/src/libcamera/event_dispatcher.cpp
+++ b/src/libcamera/event_dispatcher.cpp
@@ -7,7 +7,7 @@ 
 
 #include <libcamera/event_dispatcher.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file event_dispatcher.h
diff --git a/src/libcamera/event_dispatcher_poll.cpp b/src/libcamera/event_dispatcher_poll.cpp
index 51ac5adf2f74..284a7aabf984 100644
--- a/src/libcamera/event_dispatcher_poll.cpp
+++ b/src/libcamera/event_dispatcher_poll.cpp
@@ -5,7 +5,7 @@ 
  * event_dispatcher_poll.cpp - Poll-based event dispatcher
  */
 
-#include "event_dispatcher_poll.h"
+#include "libcamera/event_dispatcher_poll.h"
 
 #include <algorithm>
 #include <chrono>
@@ -19,9 +19,9 @@ 
 #include <libcamera/event_notifier.h>
 #include <libcamera/timer.h>
 
-#include "log.h"
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file event_dispatcher_poll.h
diff --git a/src/libcamera/event_notifier.cpp b/src/libcamera/event_notifier.cpp
index a9be686f79ae..c0202a04c179 100644
--- a/src/libcamera/event_notifier.cpp
+++ b/src/libcamera/event_notifier.cpp
@@ -10,8 +10,8 @@ 
 #include <libcamera/camera_manager.h>
 #include <libcamera/event_dispatcher.h>
 
-#include "message.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
 
 /**
  * \file event_notifier.h
diff --git a/src/libcamera/file.cpp b/src/libcamera/file.cpp
index 8223743d5f6b..052e899b5c66 100644
--- a/src/libcamera/file.cpp
+++ b/src/libcamera/file.cpp
@@ -5,7 +5,7 @@ 
  * file.cpp - File I/O operations
  */
 
-#include "file.h"
+#include "libcamera/file.h"
 
 #include <errno.h>
 #include <fcntl.h>
@@ -14,7 +14,7 @@ 
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file file.h
diff --git a/src/libcamera/file_descriptor.cpp b/src/libcamera/file_descriptor.cpp
index 88385476d890..a5094c0aff32 100644
--- a/src/libcamera/file_descriptor.cpp
+++ b/src/libcamera/file_descriptor.cpp
@@ -11,7 +11,7 @@ 
 #include <unistd.h>
 #include <utility>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file file_descriptor.h
diff --git a/src/libcamera/formats.cpp b/src/libcamera/formats.cpp
index b3af0f7fcfcc..7edccdfea56a 100644
--- a/src/libcamera/formats.cpp
+++ b/src/libcamera/formats.cpp
@@ -5,11 +5,11 @@ 
  * formats.cpp - libcamera image formats
  */
 
-#include "formats.h"
+#include "libcamera/formats.h"
 
 #include <errno.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file formats.h
diff --git a/src/libcamera/framebuffer_allocator.cpp b/src/libcamera/framebuffer_allocator.cpp
index a37b564c6701..c002b66675dc 100644
--- a/src/libcamera/framebuffer_allocator.cpp
+++ b/src/libcamera/framebuffer_allocator.cpp
@@ -13,8 +13,8 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/stream.h>
 
-#include "log.h"
-#include "pipeline_handler.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
 
 /**
  * \file framebuffer_allocator.h
diff --git a/src/libcamera/include/byte_stream_buffer.h b/src/libcamera/include/libcamera/byte_stream_buffer.h
similarity index 100%
rename from src/libcamera/include/byte_stream_buffer.h
rename to src/libcamera/include/libcamera/byte_stream_buffer.h
diff --git a/src/libcamera/include/camera_controls.h b/src/libcamera/include/libcamera/camera_controls.h
similarity index 93%
rename from src/libcamera/include/camera_controls.h
rename to src/libcamera/include/libcamera/camera_controls.h
index 265c1fe379db..e84a1ac89a18 100644
--- a/src/libcamera/include/camera_controls.h
+++ b/src/libcamera/include/libcamera/camera_controls.h
@@ -7,7 +7,7 @@ 
 #ifndef __LIBCAMERA_CAMERA_CONTROLS_H__
 #define __LIBCAMERA_CAMERA_CONTROLS_H__
 
-#include "control_validator.h"
+#include "libcamera/control_validator.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/camera_sensor.h b/src/libcamera/include/libcamera/camera_sensor.h
similarity index 97%
rename from src/libcamera/include/camera_sensor.h
rename to src/libcamera/include/libcamera/camera_sensor.h
index 30cf5f34f485..e5e2a1eafb70 100644
--- a/src/libcamera/include/camera_sensor.h
+++ b/src/libcamera/include/libcamera/camera_sensor.h
@@ -14,8 +14,8 @@ 
 #include <libcamera/controls.h>
 #include <libcamera/geometry.h>
 
-#include "formats.h"
-#include "log.h"
+#include "libcamera/formats.h"
+#include "libcamera/log.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/control_serializer.h b/src/libcamera/include/libcamera/control_serializer.h
similarity index 100%
rename from src/libcamera/include/control_serializer.h
rename to src/libcamera/include/libcamera/control_serializer.h
diff --git a/src/libcamera/include/control_validator.h b/src/libcamera/include/libcamera/control_validator.h
similarity index 100%
rename from src/libcamera/include/control_validator.h
rename to src/libcamera/include/libcamera/control_validator.h
diff --git a/src/libcamera/include/device_enumerator.h b/src/libcamera/include/libcamera/device_enumerator.h
similarity index 100%
rename from src/libcamera/include/device_enumerator.h
rename to src/libcamera/include/libcamera/device_enumerator.h
diff --git a/src/libcamera/include/device_enumerator_sysfs.h b/src/libcamera/include/libcamera/device_enumerator_sysfs.h
similarity index 93%
rename from src/libcamera/include/device_enumerator_sysfs.h
rename to src/libcamera/include/libcamera/device_enumerator_sysfs.h
index 5a5c9b0f5a31..a059de01983b 100644
--- a/src/libcamera/include/device_enumerator_sysfs.h
+++ b/src/libcamera/include/libcamera/device_enumerator_sysfs.h
@@ -10,7 +10,7 @@ 
 #include <memory>
 #include <string>
 
-#include "device_enumerator.h"
+#include "libcamera/device_enumerator.h"
 
 class MediaDevice;
 
diff --git a/src/libcamera/include/device_enumerator_udev.h b/src/libcamera/include/libcamera/device_enumerator_udev.h
similarity index 97%
rename from src/libcamera/include/device_enumerator_udev.h
rename to src/libcamera/include/libcamera/device_enumerator_udev.h
index fdce4520f33a..7c2f3eaa77ab 100644
--- a/src/libcamera/include/device_enumerator_udev.h
+++ b/src/libcamera/include/libcamera/device_enumerator_udev.h
@@ -14,7 +14,7 @@ 
 #include <string>
 #include <sys/types.h>
 
-#include "device_enumerator.h"
+#include "libcamera/device_enumerator.h"
 
 struct udev;
 struct udev_device;
diff --git a/src/libcamera/include/event_dispatcher_poll.h b/src/libcamera/include/libcamera/event_dispatcher_poll.h
similarity index 100%
rename from src/libcamera/include/event_dispatcher_poll.h
rename to src/libcamera/include/libcamera/event_dispatcher_poll.h
diff --git a/src/libcamera/include/file.h b/src/libcamera/include/libcamera/file.h
similarity index 100%
rename from src/libcamera/include/file.h
rename to src/libcamera/include/libcamera/file.h
diff --git a/src/libcamera/include/formats.h b/src/libcamera/include/libcamera/formats.h
similarity index 96%
rename from src/libcamera/include/formats.h
rename to src/libcamera/include/libcamera/formats.h
index 291a1108aa33..35c058a3ed66 100644
--- a/src/libcamera/include/formats.h
+++ b/src/libcamera/include/libcamera/formats.h
@@ -14,7 +14,7 @@ 
 #include <libcamera/geometry.h>
 #include <libcamera/pixelformats.h>
 
-#include "v4l2_pixelformat.h"
+#include "libcamera/v4l2_pixelformat.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/ipa_context_wrapper.h b/src/libcamera/include/libcamera/ipa_context_wrapper.h
similarity index 97%
rename from src/libcamera/include/ipa_context_wrapper.h
rename to src/libcamera/include/libcamera/ipa_context_wrapper.h
index 0db022ef5a1b..6ac7d828d279 100644
--- a/src/libcamera/include/ipa_context_wrapper.h
+++ b/src/libcamera/include/libcamera/ipa_context_wrapper.h
@@ -9,7 +9,7 @@ 
 
 #include <ipa/ipa_interface.h>
 
-#include "control_serializer.h"
+#include "libcamera/control_serializer.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/ipa_manager.h b/src/libcamera/include/libcamera/ipa_manager.h
similarity index 90%
rename from src/libcamera/include/ipa_manager.h
rename to src/libcamera/include/libcamera/ipa_manager.h
index aa6b9adb1f87..ef80ea109b7f 100644
--- a/src/libcamera/include/ipa_manager.h
+++ b/src/libcamera/include/libcamera/ipa_manager.h
@@ -13,9 +13,9 @@ 
 #include <ipa/ipa_interface.h>
 #include <ipa/ipa_module_info.h>
 
-#include "ipa_module.h"
-#include "pipeline_handler.h"
-#include "pub_key.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/pub_key.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/ipa_module.h b/src/libcamera/include/libcamera/ipa_module.h
similarity index 94%
rename from src/libcamera/include/ipa_module.h
rename to src/libcamera/include/libcamera/ipa_module.h
index 15022e19edce..df8466d43998 100644
--- a/src/libcamera/include/ipa_module.h
+++ b/src/libcamera/include/libcamera/ipa_module.h
@@ -14,8 +14,8 @@ 
 #include <ipa/ipa_interface.h>
 #include <ipa/ipa_module_info.h>
 
-#include "log.h"
-#include "pipeline_handler.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/ipa_proxy.h b/src/libcamera/include/libcamera/ipa_proxy.h
similarity index 100%
rename from src/libcamera/include/ipa_proxy.h
rename to src/libcamera/include/libcamera/ipa_proxy.h
diff --git a/src/libcamera/include/ipc_unixsocket.h b/src/libcamera/include/libcamera/ipc_unixsocket.h
similarity index 100%
rename from src/libcamera/include/ipc_unixsocket.h
rename to src/libcamera/include/libcamera/ipc_unixsocket.h
diff --git a/src/libcamera/include/log.h b/src/libcamera/include/libcamera/log.h
similarity index 99%
rename from src/libcamera/include/log.h
rename to src/libcamera/include/libcamera/log.h
index ee0b4069bd32..c0d626e4f958 100644
--- a/src/libcamera/include/log.h
+++ b/src/libcamera/include/libcamera/log.h
@@ -10,7 +10,7 @@ 
 #include <chrono>
 #include <sstream>
 
-#include "utils.h"
+#include "libcamera/utils.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/media_device.h b/src/libcamera/include/libcamera/media_device.h
similarity index 97%
rename from src/libcamera/include/media_device.h
rename to src/libcamera/include/libcamera/media_device.h
index 4d9f76618ec0..3fb67011bfcc 100644
--- a/src/libcamera/include/media_device.h
+++ b/src/libcamera/include/libcamera/media_device.h
@@ -16,8 +16,8 @@ 
 
 #include <libcamera/signal.h>
 
-#include "log.h"
-#include "media_object.h"
+#include "libcamera/log.h"
+#include "libcamera/media_object.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/media_object.h b/src/libcamera/include/libcamera/media_object.h
similarity index 100%
rename from src/libcamera/include/media_object.h
rename to src/libcamera/include/libcamera/media_object.h
diff --git a/src/libcamera/include/meson.build b/src/libcamera/include/libcamera/meson.build
similarity index 100%
rename from src/libcamera/include/meson.build
rename to src/libcamera/include/libcamera/meson.build
diff --git a/src/libcamera/include/message.h b/src/libcamera/include/libcamera/message.h
similarity index 100%
rename from src/libcamera/include/message.h
rename to src/libcamera/include/libcamera/message.h
diff --git a/src/libcamera/include/pipeline_handler.h b/src/libcamera/include/libcamera/pipeline_handler.h
similarity index 99%
rename from src/libcamera/include/pipeline_handler.h
rename to src/libcamera/include/libcamera/pipeline_handler.h
index 706413fa6e9f..9e48948a6786 100644
--- a/src/libcamera/include/pipeline_handler.h
+++ b/src/libcamera/include/libcamera/pipeline_handler.h
@@ -19,7 +19,7 @@ 
 #include <libcamera/object.h>
 #include <libcamera/stream.h>
 
-#include "ipa_proxy.h"
+#include "libcamera/ipa_proxy.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/process.h b/src/libcamera/include/libcamera/process.h
similarity index 100%
rename from src/libcamera/include/process.h
rename to src/libcamera/include/libcamera/process.h
diff --git a/src/libcamera/include/pub_key.h b/src/libcamera/include/libcamera/pub_key.h
similarity index 100%
rename from src/libcamera/include/pub_key.h
rename to src/libcamera/include/libcamera/pub_key.h
diff --git a/src/libcamera/include/semaphore.h b/src/libcamera/include/libcamera/semaphore.h
similarity index 95%
rename from src/libcamera/include/semaphore.h
rename to src/libcamera/include/libcamera/semaphore.h
index c6b286536eb3..de8a27ff211a 100644
--- a/src/libcamera/include/semaphore.h
+++ b/src/libcamera/include/libcamera/semaphore.h
@@ -9,7 +9,7 @@ 
 
 #include <condition_variable>
 
-#include "thread.h"
+#include "libcamera/thread.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/thread.h b/src/libcamera/include/libcamera/thread.h
similarity index 97%
rename from src/libcamera/include/thread.h
rename to src/libcamera/include/libcamera/thread.h
index d700f111a3ae..5eca8e3171e1 100644
--- a/src/libcamera/include/thread.h
+++ b/src/libcamera/include/libcamera/thread.h
@@ -14,7 +14,7 @@ 
 
 #include <libcamera/signal.h>
 
-#include "utils.h"
+#include "libcamera/utils.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/utils.h b/src/libcamera/include/libcamera/utils.h
similarity index 100%
rename from src/libcamera/include/utils.h
rename to src/libcamera/include/libcamera/utils.h
diff --git a/src/libcamera/include/v4l2_controls.h b/src/libcamera/include/libcamera/v4l2_controls.h
similarity index 100%
rename from src/libcamera/include/v4l2_controls.h
rename to src/libcamera/include/libcamera/v4l2_controls.h
diff --git a/src/libcamera/include/v4l2_device.h b/src/libcamera/include/libcamera/v4l2_device.h
similarity index 95%
rename from src/libcamera/include/v4l2_device.h
rename to src/libcamera/include/libcamera/v4l2_device.h
index e604a40df4c9..8e40731d5a39 100644
--- a/src/libcamera/include/v4l2_device.h
+++ b/src/libcamera/include/libcamera/v4l2_device.h
@@ -13,8 +13,8 @@ 
 
 #include <linux/videodev2.h>
 
-#include "log.h"
-#include "v4l2_controls.h"
+#include "libcamera/log.h"
+#include "libcamera/v4l2_controls.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/v4l2_pixelformat.h b/src/libcamera/include/libcamera/v4l2_pixelformat.h
similarity index 100%
rename from src/libcamera/include/v4l2_pixelformat.h
rename to src/libcamera/include/libcamera/v4l2_pixelformat.h
diff --git a/src/libcamera/include/v4l2_subdevice.h b/src/libcamera/include/libcamera/v4l2_subdevice.h
similarity index 92%
rename from src/libcamera/include/v4l2_subdevice.h
rename to src/libcamera/include/libcamera/v4l2_subdevice.h
index d0e565dbdaab..b84995e81178 100644
--- a/src/libcamera/include/v4l2_subdevice.h
+++ b/src/libcamera/include/libcamera/v4l2_subdevice.h
@@ -12,10 +12,10 @@ 
 
 #include <libcamera/geometry.h>
 
-#include "formats.h"
-#include "log.h"
-#include "media_object.h"
-#include "v4l2_device.h"
+#include "libcamera/formats.h"
+#include "libcamera/log.h"
+#include "libcamera/media_object.h"
+#include "libcamera/v4l2_device.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/include/v4l2_videodevice.h b/src/libcamera/include/libcamera/v4l2_videodevice.h
similarity index 97%
rename from src/libcamera/include/v4l2_videodevice.h
rename to src/libcamera/include/libcamera/v4l2_videodevice.h
index 94565b97b6b1..df4ca1eeca70 100644
--- a/src/libcamera/include/v4l2_videodevice.h
+++ b/src/libcamera/include/libcamera/v4l2_videodevice.h
@@ -20,10 +20,10 @@ 
 #include <libcamera/pixelformats.h>
 #include <libcamera/signal.h>
 
-#include "formats.h"
-#include "log.h"
-#include "v4l2_device.h"
-#include "v4l2_pixelformat.h"
+#include "libcamera/formats.h"
+#include "libcamera/log.h"
+#include "libcamera/v4l2_device.h"
+#include "libcamera/v4l2_pixelformat.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/ipa_context_wrapper.cpp b/src/libcamera/ipa_context_wrapper.cpp
index 0bd3a1aeca95..3725a78af553 100644
--- a/src/libcamera/ipa_context_wrapper.cpp
+++ b/src/libcamera/ipa_context_wrapper.cpp
@@ -5,15 +5,15 @@ 
  * ipa_context_wrapper.cpp - Image Processing Algorithm context wrapper
  */
 
-#include "ipa_context_wrapper.h"
+#include "libcamera/ipa_context_wrapper.h"
 
 #include <vector>
 
 #include <libcamera/controls.h>
 
-#include "byte_stream_buffer.h"
-#include "camera_sensor.h"
-#include "utils.h"
+#include "libcamera/byte_stream_buffer.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/utils.h"
 
 /**
  * \file ipa_context_wrapper.h
diff --git a/src/libcamera/ipa_manager.cpp b/src/libcamera/ipa_manager.cpp
index 1faa3dd38188..244aa92fe172 100644
--- a/src/libcamera/ipa_manager.cpp
+++ b/src/libcamera/ipa_manager.cpp
@@ -5,19 +5,19 @@ 
  * ipa_manager.cpp - Image Processing Algorithm module manager
  */
 
-#include "ipa_manager.h"
+#include "libcamera/ipa_manager.h"
 
 #include <algorithm>
 #include <dirent.h>
 #include <string.h>
 #include <sys/types.h>
 
-#include "file.h"
-#include "ipa_module.h"
-#include "ipa_proxy.h"
-#include "log.h"
-#include "pipeline_handler.h"
-#include "utils.h"
+#include "libcamera/file.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/ipa_proxy.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
 
 /**
  * \file ipa_manager.h
diff --git a/src/libcamera/ipa_module.cpp b/src/libcamera/ipa_module.cpp
index 3444a788b855..421ab9165fa2 100644
--- a/src/libcamera/ipa_module.cpp
+++ b/src/libcamera/ipa_module.cpp
@@ -5,7 +5,7 @@ 
  * ipa_module.cpp - Image Processing Algorithm module
  */
 
-#include "ipa_module.h"
+#include "libcamera/ipa_module.h"
 
 #include <algorithm>
 #include <array>
@@ -23,10 +23,10 @@ 
 
 #include <libcamera/span.h>
 
-#include "file.h"
-#include "log.h"
-#include "pipeline_handler.h"
-#include "utils.h"
+#include "libcamera/file.h"
+#include "libcamera/log.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
 
 /**
  * \file ipa_module.h
diff --git a/src/libcamera/ipa_proxy.cpp b/src/libcamera/ipa_proxy.cpp
index 401ac52d38d6..3ae650ed4fb1 100644
--- a/src/libcamera/ipa_proxy.cpp
+++ b/src/libcamera/ipa_proxy.cpp
@@ -5,16 +5,16 @@ 
  * ipa_proxy.cpp - Image Processing Algorithm proxy
  */
 
-#include "ipa_proxy.h"
+#include "libcamera/ipa_proxy.h"
 
 #include <string.h>
 #include <sys/stat.h>
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "ipa_module.h"
-#include "log.h"
-#include "utils.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 /**
  * \file ipa_proxy.h
diff --git a/src/libcamera/ipa_pub_key.cpp.in b/src/libcamera/ipa_pub_key.cpp.in
index 7ffc1e24d67b..a6e8762e4d15 100644
--- a/src/libcamera/ipa_pub_key.cpp.in
+++ b/src/libcamera/ipa_pub_key.cpp.in
@@ -7,7 +7,7 @@ 
  * This file is auto-generated. Do not edit.
  */
 
-#include "ipa_manager.h"
+#include "libcamera/ipa_manager.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/ipc_unixsocket.cpp b/src/libcamera/ipc_unixsocket.cpp
index 6e5cab894a93..4ef1e79260cd 100644
--- a/src/libcamera/ipc_unixsocket.cpp
+++ b/src/libcamera/ipc_unixsocket.cpp
@@ -5,14 +5,14 @@ 
  * ipc_unixsocket.cpp - IPC mechanism based on Unix sockets
  */
 
-#include "ipc_unixsocket.h"
+#include "libcamera/ipc_unixsocket.h"
 
 #include <poll.h>
 #include <string.h>
 #include <sys/socket.h>
 #include <unistd.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file ipc_unixsocket.h
diff --git a/src/libcamera/log.cpp b/src/libcamera/log.cpp
index fd1b5c39a52e..9e7a30027582 100644
--- a/src/libcamera/log.cpp
+++ b/src/libcamera/log.cpp
@@ -5,7 +5,7 @@ 
  * log.cpp - Logging infrastructure
  */
 
-#include "log.h"
+#include "libcamera/log.h"
 
 #if HAVE_BACKTRACE
 #include <execinfo.h>
@@ -22,8 +22,8 @@ 
 
 #include <libcamera/logging.h>
 
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file log.h
diff --git a/src/libcamera/media_device.cpp b/src/libcamera/media_device.cpp
index d4e7e1002224..91873884d51f 100644
--- a/src/libcamera/media_device.cpp
+++ b/src/libcamera/media_device.cpp
@@ -5,7 +5,7 @@ 
  * media_device.cpp - Media device handler
  */
 
-#include "media_device.h"
+#include "libcamera/media_device.h"
 
 #include <errno.h>
 #include <fcntl.h>
@@ -18,7 +18,7 @@ 
 
 #include <linux/media.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file media_device.h
diff --git a/src/libcamera/media_object.cpp b/src/libcamera/media_object.cpp
index ef32065c161d..add4c8bae616 100644
--- a/src/libcamera/media_object.cpp
+++ b/src/libcamera/media_object.cpp
@@ -5,7 +5,7 @@ 
  * media_object.cpp - Media device objects: entities, pads and links
  */
 
-#include "media_object.h"
+#include "libcamera/media_object.h"
 
 #include <errno.h>
 #include <string>
@@ -15,8 +15,8 @@ 
 
 #include <linux/media.h>
 
-#include "log.h"
-#include "media_device.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
 
 /**
  * \file media_object.h
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index d8b4d7206aba..1ae85e2ae961 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -49,7 +49,7 @@  libcamera_sources = files([
     'v4l2_videodevice.cpp',
 ])
 
-subdir('include')
+subdir(join_paths('include', 'libcamera'))
 
 libcamera_internal_includes =  include_directories('include')
 
diff --git a/src/libcamera/message.cpp b/src/libcamera/message.cpp
index 77f2bdd5fbac..d82c3660423c 100644
--- a/src/libcamera/message.cpp
+++ b/src/libcamera/message.cpp
@@ -5,11 +5,11 @@ 
  * message.cpp - Message queue support
  */
 
-#include "message.h"
+#include "libcamera/message.h"
 
 #include <libcamera/signal.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file message.h
diff --git a/src/libcamera/object.cpp b/src/libcamera/object.cpp
index 99c3bf9a709b..97ab11fc7e2d 100644
--- a/src/libcamera/object.cpp
+++ b/src/libcamera/object.cpp
@@ -11,11 +11,11 @@ 
 
 #include <libcamera/signal.h>
 
-#include "log.h"
-#include "message.h"
-#include "semaphore.h"
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/message.h"
+#include "libcamera/semaphore.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file object.h
diff --git a/src/libcamera/pipeline/ipu3/ipu3.cpp b/src/libcamera/pipeline/ipu3/ipu3.cpp
index 1988cb0ee551..38928df785c1 100644
--- a/src/libcamera/pipeline/ipu3/ipu3.cpp
+++ b/src/libcamera/pipeline/ipu3/ipu3.cpp
@@ -17,15 +17,15 @@ 
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
-#include "utils.h"
-#include "v4l2_controls.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
index 21a1d7f7cca3..e486203e5798 100644
--- a/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
+++ b/src/libcamera/pipeline/raspberrypi/raspberrypi.cpp
@@ -21,15 +21,16 @@ 
 #include <linux/drm_fourcc.h>
 #include <linux/videodev2.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "ipa_manager.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_manager.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
+#include "libcamera/v4l2_videodevice.h"
+
 #include "staggered_ctrl.h"
-#include "utils.h"
-#include "v4l2_controls.h"
-#include "v4l2_videodevice.h"
 #include "vcsm.h"
 
 namespace libcamera {
diff --git a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
index 0403c087c686..51ea3f7b0ac5 100644
--- a/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
+++ b/src/libcamera/pipeline/raspberrypi/staggered_ctrl.h
@@ -12,9 +12,10 @@ 
 #include <unordered_map>
 
 #include <libcamera/controls.h>
-#include "log.h"
-#include "utils.h"
-#include "v4l2_videodevice.h"
+
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_videodevice.h"
 
 /* For logging... */
 using libcamera::LogCategory;
diff --git a/src/libcamera/pipeline/rkisp1/rkisp1.cpp b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
index 1e81a0048f09..badd3b655a61 100644
--- a/src/libcamera/pipeline/rkisp1/rkisp1.cpp
+++ b/src/libcamera/pipeline/rkisp1/rkisp1.cpp
@@ -20,16 +20,17 @@ 
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "ipa_manager.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_manager.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
+
 #include "timeline.h"
-#include "utils.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/rkisp1/timeline.cpp b/src/libcamera/pipeline/rkisp1/timeline.cpp
index f6c6434d7b53..6577da8ba93f 100644
--- a/src/libcamera/pipeline/rkisp1/timeline.cpp
+++ b/src/libcamera/pipeline/rkisp1/timeline.cpp
@@ -7,7 +7,7 @@ 
 
 #include "timeline.h"
 
-#include "log.h"
+#include "libcamera/log.h"
 
 /**
  * \file timeline.h
diff --git a/src/libcamera/pipeline/rkisp1/timeline.h b/src/libcamera/pipeline/rkisp1/timeline.h
index 9d30e4eaf874..ec99e619a1f3 100644
--- a/src/libcamera/pipeline/rkisp1/timeline.h
+++ b/src/libcamera/pipeline/rkisp1/timeline.h
@@ -12,7 +12,7 @@ 
 
 #include <libcamera/timer.h>
 
-#include "utils.h"
+#include "libcamera/utils.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/simple/converter.cpp b/src/libcamera/pipeline/simple/converter.cpp
index 6d88776dc2f0..41058512dea8 100644
--- a/src/libcamera/pipeline/simple/converter.cpp
+++ b/src/libcamera/pipeline/simple/converter.cpp
@@ -13,9 +13,9 @@ 
 #include <libcamera/geometry.h>
 #include <libcamera/signal.h>
 
-#include "log.h"
-#include "media_device.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/simple/simple.cpp b/src/libcamera/pipeline/simple/simple.cpp
index 6673606153b8..9cf7cfd1e84b 100644
--- a/src/libcamera/pipeline/simple/simple.cpp
+++ b/src/libcamera/pipeline/simple/simple.cpp
@@ -24,13 +24,13 @@ 
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "converter.h"
 
diff --git a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
index f0c1337de862..86cc92764285 100644
--- a/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
+++ b/src/libcamera/pipeline/uvcvideo/uvcvideo.cpp
@@ -17,13 +17,13 @@ 
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "device_enumerator.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
-#include "utils.h"
-#include "v4l2_controls.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline/vimc/vimc.cpp b/src/libcamera/pipeline/vimc/vimc.cpp
index 128301e3d99b..dddea4ccdebc 100644
--- a/src/libcamera/pipeline/vimc/vimc.cpp
+++ b/src/libcamera/pipeline/vimc/vimc.cpp
@@ -22,16 +22,16 @@ 
 #include <libcamera/request.h>
 #include <libcamera/stream.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "ipa_manager.h"
-#include "log.h"
-#include "media_device.h"
-#include "pipeline_handler.h"
-#include "utils.h"
-#include "v4l2_controls.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_manager.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/pipeline_handler.cpp b/src/libcamera/pipeline_handler.cpp
index 254d341fb8a4..49ab1dc393db 100644
--- a/src/libcamera/pipeline_handler.cpp
+++ b/src/libcamera/pipeline_handler.cpp
@@ -5,7 +5,7 @@ 
  * pipeline_handler.cpp - Pipeline handler infrastructure
  */
 
-#include "pipeline_handler.h"
+#include "libcamera/pipeline_handler.h"
 
 #include <sys/sysmacros.h>
 
@@ -13,10 +13,10 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/camera_manager.h>
 
-#include "device_enumerator.h"
-#include "log.h"
-#include "media_device.h"
-#include "utils.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/utils.h"
 
 /**
  * \file pipeline_handler.h
diff --git a/src/libcamera/process.cpp b/src/libcamera/process.cpp
index 3b4d0f10da67..6d54ea9bc217 100644
--- a/src/libcamera/process.cpp
+++ b/src/libcamera/process.cpp
@@ -5,7 +5,7 @@ 
  * process.cpp - Process object
  */
 
-#include "process.h"
+#include "libcamera/process.h"
 
 #include <algorithm>
 #include <dirent.h>
@@ -22,8 +22,8 @@ 
 
 #include <libcamera/event_notifier.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 /**
  * \file process.h
diff --git a/src/libcamera/proxy/ipa_proxy_linux.cpp b/src/libcamera/proxy/ipa_proxy_linux.cpp
index 9e0f44cf314f..749199b1a1fd 100644
--- a/src/libcamera/proxy/ipa_proxy_linux.cpp
+++ b/src/libcamera/proxy/ipa_proxy_linux.cpp
@@ -10,11 +10,11 @@ 
 #include <ipa/ipa_interface.h>
 #include <ipa/ipa_module_info.h>
 
-#include "ipa_module.h"
-#include "ipa_proxy.h"
-#include "ipc_unixsocket.h"
-#include "log.h"
-#include "process.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/ipa_proxy.h"
+#include "libcamera/ipc_unixsocket.h"
+#include "libcamera/log.h"
+#include "libcamera/process.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/proxy/ipa_proxy_thread.cpp b/src/libcamera/proxy/ipa_proxy_thread.cpp
index 81d2d68ee715..ee54cd7368c8 100644
--- a/src/libcamera/proxy/ipa_proxy_thread.cpp
+++ b/src/libcamera/proxy/ipa_proxy_thread.cpp
@@ -10,11 +10,11 @@ 
 #include <ipa/ipa_interface.h>
 #include <ipa/ipa_module_info.h>
 
-#include "ipa_context_wrapper.h"
-#include "ipa_module.h"
-#include "ipa_proxy.h"
-#include "log.h"
-#include "thread.h"
+#include "libcamera/ipa_context_wrapper.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/ipa_proxy.h"
+#include "libcamera/log.h"
+#include "libcamera/thread.h"
 
 namespace libcamera {
 
diff --git a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
index 7d6287c7115b..e3bb0c2d8222 100644
--- a/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
+++ b/src/libcamera/proxy/worker/ipa_proxy_linux_worker.cpp
@@ -13,10 +13,10 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/logging.h>
 
-#include "ipa_module.h"
-#include "ipc_unixsocket.h"
-#include "log.h"
-#include "thread.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/ipc_unixsocket.h"
+#include "libcamera/log.h"
+#include "libcamera/thread.h"
 
 using namespace libcamera;
 
diff --git a/src/libcamera/pub_key.cpp b/src/libcamera/pub_key.cpp
index 064d2dd200e1..1d809cc61a4f 100644
--- a/src/libcamera/pub_key.cpp
+++ b/src/libcamera/pub_key.cpp
@@ -5,7 +5,7 @@ 
  * pub_key.cpp - Public key signature verification
  */
 
-#include "pub_key.h"
+#include "libcamera/pub_key.h"
 
 #if HAVE_GNUTLS
 #include <gnutls/abstract.h>
diff --git a/src/libcamera/request.cpp b/src/libcamera/request.cpp
index ea33736fbeb5..dd7863b886de 100644
--- a/src/libcamera/request.cpp
+++ b/src/libcamera/request.cpp
@@ -14,8 +14,8 @@ 
 #include <libcamera/control_ids.h>
 #include <libcamera/stream.h>
 
-#include "camera_controls.h"
-#include "log.h"
+#include "libcamera/camera_controls.h"
+#include "libcamera/log.h"
 
 /**
  * \file request.h
diff --git a/src/libcamera/semaphore.cpp b/src/libcamera/semaphore.cpp
index ce1eae4914ed..110b12ea851c 100644
--- a/src/libcamera/semaphore.cpp
+++ b/src/libcamera/semaphore.cpp
@@ -5,8 +5,8 @@ 
  * semaphore.cpp - General-purpose counting semaphore
  */
 
-#include "semaphore.h"
-#include "thread.h"
+#include "libcamera/semaphore.h"
+#include "libcamera/thread.h"
 
 /**
  * \file semaphore.h
diff --git a/src/libcamera/signal.cpp b/src/libcamera/signal.cpp
index 6eab1fa74d42..daf27072d12b 100644
--- a/src/libcamera/signal.cpp
+++ b/src/libcamera/signal.cpp
@@ -7,7 +7,7 @@ 
 
 #include <libcamera/signal.h>
 
-#include "thread.h"
+#include "libcamera/thread.h"
 
 /**
  * \file signal.h
diff --git a/src/libcamera/stream.cpp b/src/libcamera/stream.cpp
index 86c0b17db313..886613b0ee8f 100644
--- a/src/libcamera/stream.cpp
+++ b/src/libcamera/stream.cpp
@@ -15,8 +15,8 @@ 
 
 #include <libcamera/request.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
 
 /**
  * \file stream.h
diff --git a/src/libcamera/thread.cpp b/src/libcamera/thread.cpp
index 85293c188c2a..fddbb406b9da 100644
--- a/src/libcamera/thread.cpp
+++ b/src/libcamera/thread.cpp
@@ -5,7 +5,7 @@ 
  * thread.cpp - Thread support
  */
 
-#include "thread.h"
+#include "libcamera/thread.h"
 
 #include <atomic>
 #include <condition_variable>
@@ -16,9 +16,9 @@ 
 
 #include <libcamera/event_dispatcher.h>
 
-#include "event_dispatcher_poll.h"
-#include "log.h"
-#include "message.h"
+#include "libcamera/event_dispatcher_poll.h"
+#include "libcamera/log.h"
+#include "libcamera/message.h"
 
 /**
  * \page thread Thread Support
diff --git a/src/libcamera/timer.cpp b/src/libcamera/timer.cpp
index 24da51524efb..693d1f876aa9 100644
--- a/src/libcamera/timer.cpp
+++ b/src/libcamera/timer.cpp
@@ -12,10 +12,10 @@ 
 #include <libcamera/camera_manager.h>
 #include <libcamera/event_dispatcher.h>
 
-#include "log.h"
-#include "message.h"
-#include "thread.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
 
 /**
  * \file timer.h
diff --git a/src/libcamera/utils.cpp b/src/libcamera/utils.cpp
index fbadf350908a..6a59883a6124 100644
--- a/src/libcamera/utils.cpp
+++ b/src/libcamera/utils.cpp
@@ -5,7 +5,7 @@ 
  * utils.cpp - Miscellaneous utility functions
  */
 
-#include "utils.h"
+#include "libcamera/utils.h"
 
 #include <dlfcn.h>
 #include <elf.h>
diff --git a/src/libcamera/v4l2_controls.cpp b/src/libcamera/v4l2_controls.cpp
index 8e2415f2a6df..b03f3e6ac322 100644
--- a/src/libcamera/v4l2_controls.cpp
+++ b/src/libcamera/v4l2_controls.cpp
@@ -5,7 +5,7 @@ 
  * v4l2_controls.cpp - V4L2 Controls Support
  */
 
-#include "v4l2_controls.h"
+#include "libcamera/v4l2_controls.h"
 
 #include <string.h>
 
diff --git a/src/libcamera/v4l2_device.cpp b/src/libcamera/v4l2_device.cpp
index d08ab531f034..fc458da1245c 100644
--- a/src/libcamera/v4l2_device.cpp
+++ b/src/libcamera/v4l2_device.cpp
@@ -5,7 +5,7 @@ 
  * v4l2_device.cpp - Common base for V4L2 video devices and subdevices
  */
 
-#include "v4l2_device.h"
+#include "libcamera/v4l2_device.h"
 
 #include <fcntl.h>
 #include <iomanip>
@@ -14,9 +14,9 @@ 
 #include <sys/syscall.h>
 #include <unistd.h>
 
-#include "log.h"
-#include "utils.h"
-#include "v4l2_controls.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_controls.h"
 
 /**
  * \file v4l2_device.h
diff --git a/src/libcamera/v4l2_pixelformat.cpp b/src/libcamera/v4l2_pixelformat.cpp
index 561f9327780a..ff1047771e85 100644
--- a/src/libcamera/v4l2_pixelformat.cpp
+++ b/src/libcamera/v4l2_pixelformat.cpp
@@ -6,7 +6,7 @@ 
  * v4l2_pixelformat.cpp - V4L2 Pixel Format
  */
 
-#include "v4l2_pixelformat.h"
+#include "libcamera/v4l2_pixelformat.h"
 
 #include <ctype.h>
 #include <map>
@@ -16,8 +16,8 @@ 
 
 #include <libcamera/pixelformats.h>
 
-#include "formats.h"
-#include "log.h"
+#include "libcamera/formats.h"
+#include "libcamera/log.h"
 
 /**
  * \file v4l2_pixelformat.h
diff --git a/src/libcamera/v4l2_subdevice.cpp b/src/libcamera/v4l2_subdevice.cpp
index 2b756178fc0a..d5f1cd857ed1 100644
--- a/src/libcamera/v4l2_subdevice.cpp
+++ b/src/libcamera/v4l2_subdevice.cpp
@@ -5,7 +5,7 @@ 
  * v4l2_subdevice.cpp - V4L2 Subdevice
  */
 
-#include "v4l2_subdevice.h"
+#include "libcamera/v4l2_subdevice.h"
 
 #include <fcntl.h>
 #include <iomanip>
@@ -19,10 +19,10 @@ 
 
 #include <libcamera/geometry.h>
 
-#include "log.h"
-#include "media_device.h"
-#include "media_object.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/media_object.h"
+#include "libcamera/utils.h"
 
 /**
  * \file v4l2_subdevice.h
diff --git a/src/libcamera/v4l2_videodevice.cpp b/src/libcamera/v4l2_videodevice.cpp
index 4b9f8b5c0413..45ec6a46c013 100644
--- a/src/libcamera/v4l2_videodevice.cpp
+++ b/src/libcamera/v4l2_videodevice.cpp
@@ -5,7 +5,7 @@ 
  * v4l2_videodevice.cpp - V4L2 Video Device
  */
 
-#include "v4l2_videodevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include <fcntl.h>
 #include <iomanip>
@@ -23,10 +23,10 @@ 
 #include <libcamera/event_notifier.h>
 #include <libcamera/file_descriptor.h>
 
-#include "log.h"
-#include "media_device.h"
-#include "media_object.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/media_device.h"
+#include "libcamera/media_object.h"
+#include "libcamera/utils.h"
 
 /**
  * \file v4l2_videodevice.h
diff --git a/src/v4l2/v4l2_camera.cpp b/src/v4l2/v4l2_camera.cpp
index ecbb70acfb8e..e16780387059 100644
--- a/src/v4l2/v4l2_camera.cpp
+++ b/src/v4l2/v4l2_camera.cpp
@@ -9,7 +9,7 @@ 
 
 #include <errno.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 using namespace libcamera;
 
diff --git a/src/v4l2/v4l2_camera.h b/src/v4l2/v4l2_camera.h
index 130995d95eb4..012e80993265 100644
--- a/src/v4l2/v4l2_camera.h
+++ b/src/v4l2/v4l2_camera.h
@@ -17,7 +17,7 @@ 
 #include <libcamera/file_descriptor.h>
 #include <libcamera/framebuffer_allocator.h>
 
-#include "semaphore.h"
+#include "libcamera/semaphore.h"
 
 using namespace libcamera;
 
diff --git a/src/v4l2/v4l2_camera_proxy.cpp b/src/v4l2/v4l2_camera_proxy.cpp
index 47d0528b324f..4ad0c1edf175 100644
--- a/src/v4l2/v4l2_camera_proxy.cpp
+++ b/src/v4l2/v4l2_camera_proxy.cpp
@@ -17,8 +17,9 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/object.h>
 
-#include "log.h"
-#include "utils.h"
+#include "libcamera/log.h"
+#include "libcamera/utils.h"
+
 #include "v4l2_camera.h"
 #include "v4l2_compat_manager.h"
 
diff --git a/src/v4l2/v4l2_compat_manager.cpp b/src/v4l2/v4l2_compat_manager.cpp
index 961d06b3e39a..6b6b3b16344f 100644
--- a/src/v4l2/v4l2_compat_manager.cpp
+++ b/src/v4l2/v4l2_compat_manager.cpp
@@ -22,7 +22,7 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/camera_manager.h>
 
-#include "log.h"
+#include "libcamera/log.h"
 
 using namespace libcamera;
 
diff --git a/test/byte-stream-buffer.cpp b/test/byte-stream-buffer.cpp
index bc1d462ebf6f..22b8e99eed53 100644
--- a/test/byte-stream-buffer.cpp
+++ b/test/byte-stream-buffer.cpp
@@ -8,7 +8,8 @@ 
 #include <array>
 #include <iostream>
 
-#include "byte_stream_buffer.h"
+#include "libcamera/byte_stream_buffer.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/camera-sensor.cpp b/test/camera-sensor.cpp
index 6069d668e495..d37a9e707d2e 100644
--- a/test/camera-sensor.cpp
+++ b/test/camera-sensor.cpp
@@ -10,11 +10,11 @@ 
 
 #include <linux/media-bus-format.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "utils.h"
-#include "v4l2_subdevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_subdevice.h"
 
 #include "test.h"
 
diff --git a/test/camera/buffer_import.cpp b/test/camera/buffer_import.cpp
index 3f392cdc0732..b79cb998c96a 100644
--- a/test/camera/buffer_import.cpp
+++ b/test/camera/buffer_import.cpp
@@ -12,9 +12,9 @@ 
 #include <numeric>
 #include <vector>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "buffer_source.h"
 #include "camera_test.h"
diff --git a/test/controls/control_info_map.cpp b/test/controls/control_info_map.cpp
index eeb702db095b..0ce02cd8145d 100644
--- a/test/controls/control_info_map.cpp
+++ b/test/controls/control_info_map.cpp
@@ -12,7 +12,7 @@ 
 #include <libcamera/control_ids.h>
 #include <libcamera/controls.h>
 
-#include "camera_controls.h"
+#include "libcamera/camera_controls.h"
 
 #include "camera_test.h"
 #include "test.h"
diff --git a/test/controls/control_list.cpp b/test/controls/control_list.cpp
index d51ec47d61d3..d21cd3ff1d4b 100644
--- a/test/controls/control_list.cpp
+++ b/test/controls/control_list.cpp
@@ -12,7 +12,7 @@ 
 #include <libcamera/control_ids.h>
 #include <libcamera/controls.h>
 
-#include "camera_controls.h"
+#include "libcamera/camera_controls.h"
 
 #include "camera_test.h"
 #include "test.h"
diff --git a/test/event-dispatcher.cpp b/test/event-dispatcher.cpp
index 9f9cf17818f2..2417920f69ec 100644
--- a/test/event-dispatcher.cpp
+++ b/test/event-dispatcher.cpp
@@ -13,8 +13,9 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/event-thread.cpp b/test/event-thread.cpp
index 01120733eca4..acd3ddedd3d4 100644
--- a/test/event-thread.cpp
+++ b/test/event-thread.cpp
@@ -13,8 +13,9 @@ 
 #include <libcamera/event_notifier.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/event.cpp b/test/event.cpp
index 816060cc44a2..a33e9116c1bb 100644
--- a/test/event.cpp
+++ b/test/event.cpp
@@ -13,8 +13,9 @@ 
 #include <libcamera/event_notifier.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/file-descriptor.cpp b/test/file-descriptor.cpp
index e467f3a7145e..13fc7ce45eb8 100644
--- a/test/file-descriptor.cpp
+++ b/test/file-descriptor.cpp
@@ -13,8 +13,9 @@ 
 
 #include <libcamera/file_descriptor.h>
 
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "utils.h"
 
 using namespace libcamera;
 using namespace std;
diff --git a/test/file.cpp b/test/file.cpp
index 6558399808f8..d711d3b4d252 100644
--- a/test/file.cpp
+++ b/test/file.cpp
@@ -13,7 +13,8 @@ 
 #include <sys/types.h>
 #include <unistd.h>
 
-#include "file.h"
+#include "libcamera/file.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/ipa/ipa_interface_test.cpp b/test/ipa/ipa_interface_test.cpp
index 7fa88efee089..9f10fe17414b 100644
--- a/test/ipa/ipa_interface_test.cpp
+++ b/test/ipa/ipa_interface_test.cpp
@@ -18,12 +18,13 @@ 
 
 #include <ipa/ipa_vimc.h>
 
-#include "device_enumerator.h"
-#include "ipa_manager.h"
-#include "ipa_module.h"
-#include "pipeline_handler.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_manager.h"
+#include "libcamera/ipa_module.h"
+#include "libcamera/pipeline_handler.h"
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/ipa/ipa_module_test.cpp b/test/ipa/ipa_module_test.cpp
index e3aee190b410..2847098391ee 100644
--- a/test/ipa/ipa_module_test.cpp
+++ b/test/ipa/ipa_module_test.cpp
@@ -8,7 +8,7 @@ 
 #include <iostream>
 #include <string.h>
 
-#include "ipa_module.h"
+#include "libcamera/ipa_module.h"
 
 #include "test.h"
 
diff --git a/test/ipa/ipa_wrappers_test.cpp b/test/ipa/ipa_wrappers_test.cpp
index 4de132123525..32830dea74c7 100644
--- a/test/ipa/ipa_wrappers_test.cpp
+++ b/test/ipa/ipa_wrappers_test.cpp
@@ -15,11 +15,11 @@ 
 #include <libcamera/controls.h>
 #include <libipa/ipa_interface_wrapper.h>
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "ipa_context_wrapper.h"
-#include "media_device.h"
-#include "v4l2_subdevice.h"
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/ipa_context_wrapper.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_subdevice.h"
 
 #include "test.h"
 
diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
index f53042b88720..0d10f40de03b 100644
--- a/test/ipc/unixsocket.cpp
+++ b/test/ipc/unixsocket.cpp
@@ -18,10 +18,11 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "ipc_unixsocket.h"
+#include "libcamera/ipc_unixsocket.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "thread.h"
-#include "utils.h"
 
 #define CMD_CLOSE	0
 #define CMD_REVERSE	1
diff --git a/test/libtest/buffer_source.cpp b/test/libtest/buffer_source.cpp
index d1dad2a0f8cf..8d7ab8da78c5 100644
--- a/test/libtest/buffer_source.cpp
+++ b/test/libtest/buffer_source.cpp
@@ -10,7 +10,7 @@ 
 #include <iostream>
 #include <memory>
 
-#include "device_enumerator.h"
+#include "libcamera/device_enumerator.h"
 
 #include "test.h"
 
diff --git a/test/libtest/buffer_source.h b/test/libtest/buffer_source.h
index ae0879c99480..15b49d14074d 100644
--- a/test/libtest/buffer_source.h
+++ b/test/libtest/buffer_source.h
@@ -9,8 +9,8 @@ 
 
 #include <libcamera/libcamera.h>
 
-#include "media_device.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_videodevice.h"
 
 using namespace libcamera;
 
diff --git a/test/log/log_api.cpp b/test/log/log_api.cpp
index 33622f841253..39e2f775f6df 100644
--- a/test/log/log_api.cpp
+++ b/test/log/log_api.cpp
@@ -18,7 +18,8 @@ 
 
 #include <libcamera/logging.h>
 
-#include "log.h"
+#include "libcamera/log.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
index 2df4aa43713c..82114a76b7ac 100644
--- a/test/log/log_process.cpp
+++ b/test/log/log_process.cpp
@@ -18,11 +18,12 @@ 
 #include <libcamera/logging.h>
 #include <libcamera/timer.h>
 
-#include "log.h"
-#include "process.h"
+#include "libcamera/log.h"
+#include "libcamera/process.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "thread.h"
-#include "utils.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/media_device/media_device_print_test.cpp b/test/media_device/media_device_print_test.cpp
index 5018906c75e7..eadfad4061c9 100644
--- a/test/media_device/media_device_print_test.cpp
+++ b/test/media_device/media_device_print_test.cpp
@@ -10,7 +10,7 @@ 
 #include <sys/stat.h>
 #include <unistd.h>
 
-#include "media_device.h"
+#include "libcamera/media_device.h"
 
 #include "test.h"
 
diff --git a/test/media_device/media_device_test.h b/test/media_device/media_device_test.h
index cdbd14841d5c..87be6ff8e486 100644
--- a/test/media_device/media_device_test.h
+++ b/test/media_device/media_device_test.h
@@ -9,8 +9,8 @@ 
 
 #include <memory>
 
-#include "device_enumerator.h"
-#include "media_device.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
 
 #include "test.h"
 
diff --git a/test/message.cpp b/test/message.cpp
index 478bc79dffa6..1fa2f69254fb 100644
--- a/test/message.cpp
+++ b/test/message.cpp
@@ -9,8 +9,9 @@ 
 #include <iostream>
 #include <thread>
 
-#include "message.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/object-invoke.cpp b/test/object-invoke.cpp
index fa162c838c78..7c1b704f4096 100644
--- a/test/object-invoke.cpp
+++ b/test/object-invoke.cpp
@@ -11,8 +11,9 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/object.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/object.cpp b/test/object.cpp
index 16118971c755..5e38308a8e2d 100644
--- a/test/object.cpp
+++ b/test/object.cpp
@@ -9,8 +9,8 @@ 
 
 #include <libcamera/object.h>
 
-#include "message.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
 
 #include "test.h"
 
diff --git a/test/pipeline/ipu3/ipu3_pipeline_test.cpp b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
index a5c6be0955df..f1edc1dd59be 100644
--- a/test/pipeline/ipu3/ipu3_pipeline_test.cpp
+++ b/test/pipeline/ipu3/ipu3_pipeline_test.cpp
@@ -13,9 +13,10 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/camera_manager.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "media_object.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/media_object.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
index d46c928fbaf7..0f40485155b4 100644
--- a/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
+++ b/test/pipeline/rkisp1/rkisp1_pipeline_test.cpp
@@ -16,9 +16,10 @@ 
 #include <libcamera/camera.h>
 #include <libcamera/camera_manager.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "media_object.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/media_object.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
index 7e7b3c2c8bf3..6a3be85b6260 100644
--- a/test/process/process_test.cpp
+++ b/test/process/process_test.cpp
@@ -12,10 +12,11 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "process.h"
+#include "libcamera/process.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "thread.h"
-#include "utils.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/serialization/control_serialization.cpp b/test/serialization/control_serialization.cpp
index 111365241eb8..c82471b5f627 100644
--- a/test/serialization/control_serialization.cpp
+++ b/test/serialization/control_serialization.cpp
@@ -11,8 +11,9 @@ 
 #include <libcamera/control_ids.h>
 #include <libcamera/controls.h>
 
-#include "byte_stream_buffer.h"
-#include "control_serializer.h"
+#include "libcamera/byte_stream_buffer.h"
+#include "libcamera/control_serializer.h"
+
 #include "serialization_test.h"
 #include "test.h"
 
diff --git a/test/signal-threads.cpp b/test/signal-threads.cpp
index f77733ebc030..3682701a19a8 100644
--- a/test/signal-threads.cpp
+++ b/test/signal-threads.cpp
@@ -9,10 +9,11 @@ 
 #include <iostream>
 #include <thread>
 
-#include "message.h"
-#include "thread.h"
+#include "libcamera/message.h"
+#include "libcamera/thread.h"
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "utils.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/threads.cpp b/test/threads.cpp
index 0454761de12c..b36c847e94c0 100644
--- a/test/threads.cpp
+++ b/test/threads.cpp
@@ -9,7 +9,8 @@ 
 #include <iostream>
 #include <thread>
 
-#include "thread.h"
+#include "libcamera/thread.h"
+
 #include "test.h"
 
 using namespace std;
diff --git a/test/timer-thread.cpp b/test/timer-thread.cpp
index 32853b4e80ef..30a843f1b12c 100644
--- a/test/timer-thread.cpp
+++ b/test/timer-thread.cpp
@@ -11,8 +11,9 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/timer.cpp b/test/timer.cpp
index 2bdb006edccb..98eaa7ac043c 100644
--- a/test/timer.cpp
+++ b/test/timer.cpp
@@ -11,8 +11,9 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
+#include "libcamera/thread.h"
+
 #include "test.h"
-#include "thread.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/utils.cpp b/test/utils.cpp
index 55ce9365a53e..efea38b6a8f4 100644
--- a/test/utils.cpp
+++ b/test/utils.cpp
@@ -12,8 +12,9 @@ 
 
 #include <libcamera/geometry.h>
 
+#include "libcamera/utils.h"
+
 #include "test.h"
-#include "utils.h"
 
 using namespace std;
 using namespace libcamera;
diff --git a/test/v4l2_subdevice/list_formats.cpp b/test/v4l2_subdevice/list_formats.cpp
index 067dc5ed30f4..7c757b46811c 100644
--- a/test/v4l2_subdevice/list_formats.cpp
+++ b/test/v4l2_subdevice/list_formats.cpp
@@ -11,7 +11,8 @@ 
 
 #include <libcamera/geometry.h>
 
-#include "v4l2_subdevice.h"
+#include "libcamera/v4l2_subdevice.h"
+
 #include "v4l2_subdevice_test.h"
 
 using namespace std;
diff --git a/test/v4l2_subdevice/test_formats.cpp b/test/v4l2_subdevice/test_formats.cpp
index 5cf5d5664b04..7a1f4c48c8e3 100644
--- a/test/v4l2_subdevice/test_formats.cpp
+++ b/test/v4l2_subdevice/test_formats.cpp
@@ -8,7 +8,8 @@ 
 #include <iostream>
 #include <limits.h>
 
-#include "v4l2_subdevice.h"
+#include "libcamera/v4l2_subdevice.h"
+
 #include "v4l2_subdevice_test.h"
 
 using namespace std;
diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.cpp b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
index 562a638cb28e..35f9b655a7ac 100644
--- a/test/v4l2_subdevice/v4l2_subdevice_test.cpp
+++ b/test/v4l2_subdevice/v4l2_subdevice_test.cpp
@@ -9,9 +9,10 @@ 
 #include <string.h>
 #include <sys/stat.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "v4l2_subdevice.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_subdevice.h"
+
 #include "v4l2_subdevice_test.h"
 
 using namespace std;
diff --git a/test/v4l2_subdevice/v4l2_subdevice_test.h b/test/v4l2_subdevice/v4l2_subdevice_test.h
index 3bce6691f8ef..7097ba1c2659 100644
--- a/test/v4l2_subdevice/v4l2_subdevice_test.h
+++ b/test/v4l2_subdevice/v4l2_subdevice_test.h
@@ -10,10 +10,11 @@ 
 
 #include <libcamera/buffer.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_subdevice.h"
+
 #include "test.h"
-#include "v4l2_subdevice.h"
 
 using namespace libcamera;
 
diff --git a/test/v4l2_videodevice/buffer_sharing.cpp b/test/v4l2_videodevice/buffer_sharing.cpp
index 14d3055ad7d1..a03b9dd29819 100644
--- a/test/v4l2_videodevice/buffer_sharing.cpp
+++ b/test/v4l2_videodevice/buffer_sharing.cpp
@@ -16,7 +16,8 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "thread.h"
+#include "libcamera/thread.h"
+
 #include "v4l2_videodevice_test.h"
 
 class BufferSharingTest : public V4L2VideoDeviceTest
diff --git a/test/v4l2_videodevice/capture_async.cpp b/test/v4l2_videodevice/capture_async.cpp
index b38aabc6263d..ae52cb92151a 100644
--- a/test/v4l2_videodevice/capture_async.cpp
+++ b/test/v4l2_videodevice/capture_async.cpp
@@ -11,7 +11,8 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "thread.h"
+#include "libcamera/thread.h"
+
 #include "v4l2_videodevice_test.h"
 
 class CaptureAsyncTest : public V4L2VideoDeviceTest
diff --git a/test/v4l2_videodevice/controls.cpp b/test/v4l2_videodevice/controls.cpp
index 347af2112f1a..4ff60110f007 100644
--- a/test/v4l2_videodevice/controls.cpp
+++ b/test/v4l2_videodevice/controls.cpp
@@ -10,7 +10,7 @@ 
 #include <iostream>
 #include <limits.h>
 
-#include "v4l2_videodevice.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "v4l2_videodevice_test.h"
 
diff --git a/test/v4l2_videodevice/formats.cpp b/test/v4l2_videodevice/formats.cpp
index a74214215faf..bfd5bf5bbbdf 100644
--- a/test/v4l2_videodevice/formats.cpp
+++ b/test/v4l2_videodevice/formats.cpp
@@ -8,8 +8,8 @@ 
 #include <iostream>
 #include <limits.h>
 
-#include "utils.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/utils.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "v4l2_videodevice_test.h"
 
diff --git a/test/v4l2_videodevice/v4l2_m2mdevice.cpp b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
index d20e5dfc3077..57a81e40725d 100644
--- a/test/v4l2_videodevice/v4l2_m2mdevice.cpp
+++ b/test/v4l2_videodevice/v4l2_m2mdevice.cpp
@@ -11,10 +11,10 @@ 
 #include <libcamera/event_dispatcher.h>
 #include <libcamera/timer.h>
 
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "thread.h"
-#include "v4l2_videodevice.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/thread.h"
+#include "libcamera/v4l2_videodevice.h"
 
 #include "test.h"
 
diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.cpp b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
index 93b9e72da5b4..cf260fffa4c7 100644
--- a/test/v4l2_videodevice/v4l2_videodevice_test.cpp
+++ b/test/v4l2_videodevice/v4l2_videodevice_test.cpp
@@ -9,11 +9,11 @@ 
 
 #include <linux/media-bus-format.h>
 
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+
 #include "v4l2_videodevice_test.h"
 
-#include "device_enumerator.h"
-#include "media_device.h"
-
 using namespace std;
 using namespace libcamera;
 
diff --git a/test/v4l2_videodevice/v4l2_videodevice_test.h b/test/v4l2_videodevice/v4l2_videodevice_test.h
index 9acaceb84fe0..5d4f5f1995ed 100644
--- a/test/v4l2_videodevice/v4l2_videodevice_test.h
+++ b/test/v4l2_videodevice/v4l2_videodevice_test.h
@@ -11,14 +11,14 @@ 
 
 #include <libcamera/buffer.h>
 
+#include "libcamera/camera_sensor.h"
+#include "libcamera/device_enumerator.h"
+#include "libcamera/media_device.h"
+#include "libcamera/v4l2_subdevice.h"
+#include "libcamera/v4l2_videodevice.h"
+
 #include "test.h"
 
-#include "camera_sensor.h"
-#include "device_enumerator.h"
-#include "media_device.h"
-#include "v4l2_subdevice.h"
-#include "v4l2_videodevice.h"
-
 using namespace libcamera;
 
 class V4L2VideoDeviceTest : public Test