Message ID | 20240628213535.6906-2-laurent.pinchart@ideasonboard.com |
---|---|
State | Accepted |
Commit | 7735d65ce81db570570dc21bb6056da8abd2ae22 |
Headers | show |
Series |
|
Related | show |
Hi Laurent, Thank you for the patch On 29/06/24 3:05 am, Laurent Pinchart wrote: > The 16-bit padded raw 10 and raw 12 formats are stored in memory in > little endian order, regardless of the machine's endianness. Swap the > 16-bit values on big-endian machines when reading pixels from memory to > generate thumbnails. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> LGTM, Reviewed-by: Umang Jain <umang.jain@ideasonboard.com> > --- > src/apps/common/dng_writer.cpp | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp > index 9241f23fb806..50db5eb33c83 100644 > --- a/src/apps/common/dng_writer.cpp > +++ b/src/apps/common/dng_writer.cpp > @@ -8,6 +8,7 @@ > #include "dng_writer.h" > > #include <algorithm> > +#include <endian.h> > #include <iostream> > #include <map> > > @@ -185,7 +186,8 @@ void thumbScanlineRaw(const FormatInfo &info, void *output, const void *input, > > /* Simple averaging that produces greyscale RGB values. */ > for (unsigned int x = 0; x < width; x++) { > - uint16_t value = (in[0] + in[1] + in2[0] + in2[1]) >> 2; > + uint16_t value = (le16toh(in[0]) + le16toh(in[1]) + > + le16toh(in2[0]) + le16toh(in2[1])) >> 2; > value = value >> shift; > *out++ = value; > *out++ = value;
Hi Laurent, Thanks for the patch. On Sat, Jun 29, 2024 at 12:35:34AM +0300, Laurent Pinchart wrote: > The 16-bit padded raw 10 and raw 12 formats are stored in memory in > little endian order, regardless of the machine's endianness. Swap the > 16-bit values on big-endian machines when reading pixels from memory to > generate thumbnails. > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> Regards, Stefan > --- > src/apps/common/dng_writer.cpp | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp > index 9241f23fb806..50db5eb33c83 100644 > --- a/src/apps/common/dng_writer.cpp > +++ b/src/apps/common/dng_writer.cpp > @@ -8,6 +8,7 @@ > #include "dng_writer.h" > > #include <algorithm> > +#include <endian.h> > #include <iostream> > #include <map> > > @@ -185,7 +186,8 @@ void thumbScanlineRaw(const FormatInfo &info, void *output, const void *input, > > /* Simple averaging that produces greyscale RGB values. */ > for (unsigned int x = 0; x < width; x++) { > - uint16_t value = (in[0] + in[1] + in2[0] + in2[1]) >> 2; > + uint16_t value = (le16toh(in[0]) + le16toh(in[1]) + > + le16toh(in2[0]) + le16toh(in2[1])) >> 2; > value = value >> shift; > *out++ = value; > *out++ = value; > -- > Regards, > > Laurent Pinchart >
On Mon, Jul 01, 2024 at 09:21:08AM +0200, Stefan Klug wrote: > Hi Laurent, > > Thanks for the patch. > > On Sat, Jun 29, 2024 at 12:35:34AM +0300, Laurent Pinchart wrote: > > The 16-bit padded raw 10 and raw 12 formats are stored in memory in > > little endian order, regardless of the machine's endianness. Swap the > > 16-bit values on big-endian machines when reading pixels from memory to > > generate thumbnails. > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> Did you mean Reviewed-by ? > > --- > > src/apps/common/dng_writer.cpp | 4 +++- > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp > > index 9241f23fb806..50db5eb33c83 100644 > > --- a/src/apps/common/dng_writer.cpp > > +++ b/src/apps/common/dng_writer.cpp > > @@ -8,6 +8,7 @@ > > #include "dng_writer.h" > > > > #include <algorithm> > > +#include <endian.h> > > #include <iostream> > > #include <map> > > > > @@ -185,7 +186,8 @@ void thumbScanlineRaw(const FormatInfo &info, void *output, const void *input, > > > > /* Simple averaging that produces greyscale RGB values. */ > > for (unsigned int x = 0; x < width; x++) { > > - uint16_t value = (in[0] + in[1] + in2[0] + in2[1]) >> 2; > > + uint16_t value = (le16toh(in[0]) + le16toh(in[1]) + > > + le16toh(in2[0]) + le16toh(in2[1])) >> 2; > > value = value >> shift; > > *out++ = value; > > *out++ = value;
On Mon, Jul 01, 2024 at 10:29:06AM +0300, Laurent Pinchart wrote: > On Mon, Jul 01, 2024 at 09:21:08AM +0200, Stefan Klug wrote: > > Hi Laurent, > > > > Thanks for the patch. > > > > On Sat, Jun 29, 2024 at 12:35:34AM +0300, Laurent Pinchart wrote: > > > The 16-bit padded raw 10 and raw 12 formats are stored in memory in > > > little endian order, regardless of the machine's endianness. Swap the > > > 16-bit values on big-endian machines when reading pixels from memory to > > > generate thumbnails. > > > > > > Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> > > > > Signed-off-by: Stefan Klug <stefan.klug@ideasonboard.com> > > Did you mean Reviewed-by ? Oh, monday morning... yes, that was meant to be Reviewed-by: Stefan Klug <stefan.klug@ideasonboard.com> Regards, Stefan > > > > --- > > > src/apps/common/dng_writer.cpp | 4 +++- > > > 1 file changed, 3 insertions(+), 1 deletion(-) > > > > > > diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp > > > index 9241f23fb806..50db5eb33c83 100644 > > > --- a/src/apps/common/dng_writer.cpp > > > +++ b/src/apps/common/dng_writer.cpp > > > @@ -8,6 +8,7 @@ > > > #include "dng_writer.h" > > > > > > #include <algorithm> > > > +#include <endian.h> > > > #include <iostream> > > > #include <map> > > > > > > @@ -185,7 +186,8 @@ void thumbScanlineRaw(const FormatInfo &info, void *output, const void *input, > > > > > > /* Simple averaging that produces greyscale RGB values. */ > > > for (unsigned int x = 0; x < width; x++) { > > > - uint16_t value = (in[0] + in[1] + in2[0] + in2[1]) >> 2; > > > + uint16_t value = (le16toh(in[0]) + le16toh(in[1]) + > > > + le16toh(in2[0]) + le16toh(in2[1])) >> 2; > > > value = value >> shift; > > > *out++ = value; > > > *out++ = value; > > -- > Regards, > > Laurent Pinchart
diff --git a/src/apps/common/dng_writer.cpp b/src/apps/common/dng_writer.cpp index 9241f23fb806..50db5eb33c83 100644 --- a/src/apps/common/dng_writer.cpp +++ b/src/apps/common/dng_writer.cpp @@ -8,6 +8,7 @@ #include "dng_writer.h" #include <algorithm> +#include <endian.h> #include <iostream> #include <map> @@ -185,7 +186,8 @@ void thumbScanlineRaw(const FormatInfo &info, void *output, const void *input, /* Simple averaging that produces greyscale RGB values. */ for (unsigned int x = 0; x < width; x++) { - uint16_t value = (in[0] + in[1] + in2[0] + in2[1]) >> 2; + uint16_t value = (le16toh(in[0]) + le16toh(in[1]) + + le16toh(in2[0]) + le16toh(in2[1])) >> 2; value = value >> shift; *out++ = value; *out++ = value;
The 16-bit padded raw 10 and raw 12 formats are stored in memory in little endian order, regardless of the machine's endianness. Swap the 16-bit values on big-endian machines when reading pixels from memory to generate thumbnails. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> --- src/apps/common/dng_writer.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)