[libcamera-devel] [PATCH v2 4/4] android: jpeg: exif: change GPS method encoding from ASCII to NoEncoding

Laurent Pinchart laurent.pinchart at ideasonboard.com
Tue Mar 9 10:18:33 CET 2021


Hi Paul,

Thank you for the patch.

On Tue, Mar 09, 2021 at 05:52:35PM +0900, Paul Elder wrote:
> According to the EXIF specification, the GPS method should be UNDEFINED,
> and the first 8 bytes will designate the type. However, CTS expects the
> first 8 bytes to be part of the data. Remove the 8-byte encoding
> designator by changing the encoding to NoEncoding to appease CTS.
> 
> This is part of the fix that allows the following CTS test to pass:
> - android.hardware.cts.CameraTest#testJpegExif
> 
> Signed-off-by: Paul Elder <paul.elder at ideasonboard.com>

Exif is such an amazing specification. I don't see a way to find an
authoritative answer to the question of what we should do here, so being
CTS-compliant is probably as good as it gets.

Reviewed-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>

> ---
> Changes in v2:
> - keep UNDEFINED instead of changing it to ASCII, and use NoEncoding
> ---
>  src/android/jpeg/exif.cpp | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/src/android/jpeg/exif.cpp b/src/android/jpeg/exif.cpp
> index 628382a9..7e47c1ac 100644
> --- a/src/android/jpeg/exif.cpp
> +++ b/src/android/jpeg/exif.cpp
> @@ -407,7 +407,7 @@ void Exif::setGPSLocation(const double *coords)
>  void Exif::setGPSMethod(const std::string &method)
>  {
>  	setString(EXIF_IFD_GPS, static_cast<ExifTag>(EXIF_TAG_GPS_PROCESSING_METHOD),
> -		  EXIF_FORMAT_UNDEFINED, method, Unicode);
> +		  EXIF_FORMAT_UNDEFINED, method, NoEncoding);
>  }
>  
>  void Exif::setOrientation(int orientation)

-- 
Regards,

Laurent Pinchart


More information about the libcamera-devel mailing list