[libcamera-devel,0/2] Use YAML 1.1 for the time being
mbox series

Message ID 20220804132112.17604-1-laurent.pinchart@ideasonboard.com
Headers show
Series
  • Use YAML 1.1 for the time being
Related show

Message

Laurent Pinchart Aug. 4, 2022, 1:21 p.m. UTC
Hello,

This small patch series switches all the YAML files in libcamera to use
YAML 1.1, in order to support the libyaml version shipped in the latest
Debian stable.

YAML 1.2 support was added to libyaml on v0.2.3, and Debian stable
currently ships v0.2.2 (Debian testing has updated to v0.2.5, which is
the version libcamera uses in the libyaml wrap fallback). This causes
issues parsing YAML files in the RkISP1 module. To fix that, we could
have mandated libyaml v0.2.3 or newer, but given that we don't depend on
any YAML 1.2 feature, downgrading our YAML files to version 1.1 should
be more user-friendly.

The main drawback I can see is that YAML 1.1 parses the unquoted string
literals Yes, No, On and Off as booleans, while YAML 1.2 parses them as
strings. None of the YAML files in libcamera use those values, but we'll
have to be careful not to use them in the future if we want to later
switch back to YAML 1.2 when distributions will have caught up.

Patch 1/2 fixes the issue in the RkISP1 IPA module tuning data files,
while patch 2/2 modifies the internal YAML files used for code
generation. The latter isn't strictly needed as explained in the commit
message of the second patch, but I've included it for consistency. I'm
fine dropping the second patch if preferred.

Florian, could you check if this fixes your YAML parsing issues ?

Laurent Pinchart (2):
  ipa: rkisp1: Use YAML 1.1 for tuning data files
  libcamera: Switch internal YAML files to YAML 1.1

 src/ipa/rkisp1/data/imx219.yaml       | 2 +-
 src/ipa/rkisp1/data/ov5640.yaml       | 2 +-
 src/ipa/rkisp1/data/uncalibrated.yaml | 2 +-
 src/libcamera/control_ids.yaml        | 2 +-
 src/libcamera/formats.yaml            | 2 +-
 src/libcamera/property_ids.yaml       | 2 +-
 6 files changed, 6 insertions(+), 6 deletions(-)


base-commit: 961a6cf7cac9b788cc285a58ae1b8a480f00b633

Comments

Florian Sylvestre Aug. 4, 2022, 2:14 p.m. UTC | #1
On Thu, 4 Aug 2022 at 15:21, Laurent Pinchart
<laurent.pinchart@ideasonboard.com> wrote:
>
> Hello,
>
> This small patch series switches all the YAML files in libcamera to use
> YAML 1.1, in order to support the libyaml version shipped in the latest
> Debian stable.
>
> YAML 1.2 support was added to libyaml on v0.2.3, and Debian stable
> currently ships v0.2.2 (Debian testing has updated to v0.2.5, which is
> the version libcamera uses in the libyaml wrap fallback). This causes
> issues parsing YAML files in the RkISP1 module. To fix that, we could
> have mandated libyaml v0.2.3 or newer, but given that we don't depend on
> any YAML 1.2 feature, downgrading our YAML files to version 1.1 should
> be more user-friendly.
>
> The main drawback I can see is that YAML 1.1 parses the unquoted string
> literals Yes, No, On and Off as booleans, while YAML 1.2 parses them as
> strings. None of the YAML files in libcamera use those values, but we'll
> have to be careful not to use them in the future if we want to later
> switch back to YAML 1.2 when distributions will have caught up.
>
> Patch 1/2 fixes the issue in the RkISP1 IPA module tuning data files,
> while patch 2/2 modifies the internal YAML files used for code
> generation. The latter isn't strictly needed as explained in the commit
> message of the second patch, but I've included it for consistency. I'm
> fine dropping the second patch if preferred.
>
> Florian, could you check if this fixes your YAML parsing issues ?
I confirm it fixes my YAML parsing issues.
>
> Laurent Pinchart (2):
>   ipa: rkisp1: Use YAML 1.1 for tuning data files
>   libcamera: Switch internal YAML files to YAML 1.1
>
>  src/ipa/rkisp1/data/imx219.yaml       | 2 +-
>  src/ipa/rkisp1/data/ov5640.yaml       | 2 +-
>  src/ipa/rkisp1/data/uncalibrated.yaml | 2 +-
>  src/libcamera/control_ids.yaml        | 2 +-
>  src/libcamera/formats.yaml            | 2 +-
>  src/libcamera/property_ids.yaml       | 2 +-
>  6 files changed, 6 insertions(+), 6 deletions(-)
>
>
> base-commit: 961a6cf7cac9b788cc285a58ae1b8a480f00b633
> --
> Regards,
>
> Laurent Pinchart
>