[PATCH 2/3] gstreamer: Add support for read- and write-only controls

Jaslo Ziska jaslo at ziska.de
Wed Apr 23 10:35:24 CEST 2025


Hi Nicolas,

thanks for the review.

Nicolas Dufresne <nicolas at ndufresne.ca> writes:
> Le mardi 22 avril 2025 à 16:25 +0200, Jaslo Ziska a écrit :
>> Signed-off-by: Jaslo Ziska <jaslo at ziska.de>
>> ---
>>  src/gstreamer/gstlibcamera-controls.cpp.in | 12 ++++++++++++
>>  1 file changed, 12 insertions(+)
>>
>> diff --git a/src/gstreamer/gstlibcamera-controls.cpp.in 
>> b/src/gstreamer/gstlibcamera-controls.cpp.in
>> index 28604a3c..b38038ca 100644
>> --- a/src/gstreamer/gstlibcamera-controls.cpp.in
>> +++ b/src/gstreamer/gstlibcamera-controls.cpp.in
>> @@ -126,7 +126,13 @@ g_param_spec_{{ ctrl.gtype }}(
>>  {%- endif %}
>>  	(GParamFlags) (GST_PARAM_CONDITIONALLY_AVAILABLE |
>>  		       GST_PARAM_CONTROLLABLE |
>> +{%- if ctrl.direction == 'ControlId::Direction::In' %}
>> +		       G_PARAM_WRITABLE |
>> +{%- elif ctrl.direction == 'ControlId::Direction::Out' %}
>> +		       G_PARAM_READABLE |
>> +{%- else %}
>>  		       G_PARAM_READWRITE |
>> +{%- endif %}
>>  		       G_PARAM_STATIC_STRINGS)
>>  )
>>  {%- endset %}
>> @@ -142,7 +148,13 @@ g_param_spec_{{ ctrl.gtype }}(
>>  			{{ spec|indent_str('\t\t\t') }},
>>  			(GParamFlags) (GST_PARAM_CONDITIONALLY_AVAILABLE |
>>  				       GST_PARAM_CONTROLLABLE |
>> +{%- if ctrl.direction == 'ControlId::Direction::In' %}
>> +				       G_PARAM_WRITABLE |
>> +{%- elif ctrl.direction == 'ControlId::Direction::Out' %}
>> +				       G_PARAM_READABLE |
>> +{%- else %}
>>  				       G_PARAM_READWRITE |
>> +{%- endif %}
>>  				       G_PARAM_STATIC_STRINGS)
>>  		)
>>  {%- else %}
>
> Looks good to me, just wondering though why is that duplicated ?

That's because of array controls. The first time (in the {% set 
spec %}) is for normal enum, int, etc. controls and the second 
time these specs might be included in the array spec. So it's set 
for both because each might end up as the "top level" spec 
depending on whether the control is an array control or not.

>
> Reviewed-by: Nicolas Dufresne <nicolas.dufresne at collabora.com>


More information about the libcamera-devel mailing list