[RFC,v3,13/22,DNI] apps: cam: Print `MetadataList` of `Request` as well
diff mbox series

Message ID 20251030165816.1095180-14-barnabas.pocze@ideasonboard.com
State New
Headers show
Series
  • libcamera: Add `MetadataList`
Related show

Commit Message

Barnabás Pőcze Oct. 30, 2025, 4:58 p.m. UTC
When the "--metadata" option is enabled, print the dedicated
`MetadataList` of the request as well.
---
 src/apps/cam/camera_session.cpp | 8 ++++++++
 1 file changed, 8 insertions(+)

Comments

Kieran Bingham Nov. 2, 2025, 3:19 p.m. UTC | #1
Quoting Barnabás Pőcze (2025-10-30 16:58:07)
> When the "--metadata" option is enabled, print the dedicated
> `MetadataList` of the request as well.
> ---
>  src/apps/cam/camera_session.cpp | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp
> index 0aef3128f2..ecb1b50b9c 100644
> --- a/src/apps/cam/camera_session.cpp
> +++ b/src/apps/cam/camera_session.cpp
> @@ -535,11 +535,19 @@ void CameraSession::processRequest(Request *request)
>  
>         if (printMetadata_) {
>                 const ControlList &requestMetadata = request->metadata();
> +               std::cout << "Metadata (" << requestMetadata.size() << " entries):\n";
>                 for (const auto &[key, value] : requestMetadata) {
>                         const ControlId *id = controls::controls.at(key);
>                         std::cout << "\t" << id->name() << " = "
>                                   << value.toString() << std::endl;
>                 }
> +
> +               const auto &requestMetadata2 = request->metadata2();
> +               std::cout << "Metadata2 (" << requestMetadata2.size() << " entries):\n";
> +               for (const auto &[key, value] : requestMetadata2) {
> +                       const ControlId *id = controls::controls.at(key);
> +                       std::cout << '\t' << id->name() << " = " << value << std::endl;

So this makes me think for the omst part - the interface on metadata2 is
the same, so should be possible to directly replace metadata()?

Of course it's an ABI break - but we can do that 'at the moment'...

> +               }
>         }
>  
>         /*
> -- 
> 2.51.1
>
Barnabás Pőcze Nov. 3, 2025, 9:43 a.m. UTC | #2
Hi

2025. 11. 02. 16:19 keltezéssel, Kieran Bingham írta:
> Quoting Barnabás Pőcze (2025-10-30 16:58:07)
>> When the "--metadata" option is enabled, print the dedicated
>> `MetadataList` of the request as well.
>> ---
>>   src/apps/cam/camera_session.cpp | 8 ++++++++
>>   1 file changed, 8 insertions(+)
>>
>> diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp
>> index 0aef3128f2..ecb1b50b9c 100644
>> --- a/src/apps/cam/camera_session.cpp
>> +++ b/src/apps/cam/camera_session.cpp
>> @@ -535,11 +535,19 @@ void CameraSession::processRequest(Request *request)
>>   
>>          if (printMetadata_) {
>>                  const ControlList &requestMetadata = request->metadata();
>> +               std::cout << "Metadata (" << requestMetadata.size() << " entries):\n";
>>                  for (const auto &[key, value] : requestMetadata) {
>>                          const ControlId *id = controls::controls.at(key);
>>                          std::cout << "\t" << id->name() << " = "
>>                                    << value.toString() << std::endl;
>>                  }
>> +
>> +               const auto &requestMetadata2 = request->metadata2();
>> +               std::cout << "Metadata2 (" << requestMetadata2.size() << " entries):\n";
>> +               for (const auto &[key, value] : requestMetadata2) {
>> +                       const ControlId *id = controls::controls.at(key);
>> +                       std::cout << '\t' << id->name() << " = " << value << std::endl;
> 
> So this makes me think for the omst part - the interface on metadata2 is
> the same, so should be possible to directly replace metadata()?

Yes, that is the intention (and it works for the most part);
please see the last change in this series.


> 
> Of course it's an ABI break - but we can do that 'at the moment'...
> 
>> +               }
>>          }
>>   
>>          /*
>> -- 
>> 2.51.1
>>

Patch
diff mbox series

diff --git a/src/apps/cam/camera_session.cpp b/src/apps/cam/camera_session.cpp
index 0aef3128f2..ecb1b50b9c 100644
--- a/src/apps/cam/camera_session.cpp
+++ b/src/apps/cam/camera_session.cpp
@@ -535,11 +535,19 @@  void CameraSession::processRequest(Request *request)
 
 	if (printMetadata_) {
 		const ControlList &requestMetadata = request->metadata();
+		std::cout << "Metadata (" << requestMetadata.size() << " entries):\n";
 		for (const auto &[key, value] : requestMetadata) {
 			const ControlId *id = controls::controls.at(key);
 			std::cout << "\t" << id->name() << " = "
 				  << value.toString() << std::endl;
 		}
+
+		const auto &requestMetadata2 = request->metadata2();
+		std::cout << "Metadata2 (" << requestMetadata2.size() << " entries):\n";
+		for (const auto &[key, value] : requestMetadata2) {
+			const ControlId *id = controls::controls.at(key);
+			std::cout << '\t' << id->name() << " = " << value << std::endl;
+		}
 	}
 
 	/*