Files
tqma6-yocto-mirror/sources/meta-tq/meta-dumpling/recipes-multimedia/gstreamer/gstreamer1.0-plugins-bad-1.22.%/0005-bayer2rgb-Pass-all-parameters-to-LINE-macro.patch
Siggi (OpenClaw Agent) 16accb6b24 Complete Yocto mirror with license table for TQMa6UL (2038-compliance)
- 264 license table entries with exact download URLs (224/264 resolved)
- Complete sources/ directory with all BitBake recipes
- Build configuration: tqma6ul-multi-mba6ulx, spaetzle (musl)
- Full traceability for Softwarefreigabeantrag
- GCC 13.4.0, Linux 6.6.102, U-Boot 2023.04, musl 1.2.4
- License distribution: GPL-2.0 (24), MIT (23), GPL-2.0+ (18), BSD-3 (16)
2026-03-01 21:14:11 +00:00

68 lines
3.2 KiB
Diff

From 9e37b8439bc3d24b44bd6447cc970d0feb906f5b Mon Sep 17 00:00:00 2001
From: Marek Vasut <marex@denx.de>
Date: Sat, 20 May 2023 16:03:10 +0200
Subject: [PATCH 5/9] bayer2rgb: Pass all parameters to LINE() macro
Pass all three parameters used by the LINE() macro to the LINE() macro
and unroll the code for readability. Add more comments regarding which
of these LINE()s point to which data in the temporary buffer to make
the code less confusing.
Upstream-Status: Backport [https://gitlab.freedesktop.org/gstreamer/gstreamer/-/commit/fbd02b3e2a6feda532a75b5372d0a47e411c62e0]
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/4686>
---
gst/bayer/gstbayer2rgb.c | 29 ++++++++++++++++++++---------
1 file changed, 20 insertions(+), 9 deletions(-)
diff --git a/gst/bayer/gstbayer2rgb.c b/gst/bayer/gstbayer2rgb.c
index 6f1540d0f6..8d5dc9b282 100644
--- a/gst/bayer/gstbayer2rgb.c
+++ b/gst/bayer/gstbayer2rgb.c
@@ -428,23 +428,34 @@ gst_bayer2rgb_process (GstBayer2RGB * bayer2rgb, uint8_t * dest,
}
tmp = g_malloc (2 * 4 * bayer2rgb->width);
-#define LINE(x) (tmp + ((x)&7) * bayer2rgb->width)
+#define LINE(t, x, b) ((t) + (((x) & 7) * ((b)->width)))
- gst_bayer2rgb_split_and_upsample_horiz (LINE (3 * 2 + 0), LINE (3 * 2 + 1),
+ gst_bayer2rgb_split_and_upsample_horiz ( /* src line 1 */
+ LINE (tmp, 3 * 2 + 0, bayer2rgb), /* tmp buffer line 6 */
+ LINE (tmp, 3 * 2 + 1, bayer2rgb), /* tmp buffer line 7 */
src + 1 * src_stride, bayer2rgb->width);
- gst_bayer2rgb_split_and_upsample_horiz (LINE (0 * 2 + 0), LINE (0 * 2 + 1),
+
+ gst_bayer2rgb_split_and_upsample_horiz ( /* src line 0 */
+ LINE (tmp, 0 * 2 + 0, bayer2rgb), /* tmp buffer line 0 */
+ LINE (tmp, 0 * 2 + 1, bayer2rgb), /* tmp buffer line 1 */
src + 0 * src_stride, bayer2rgb->width);
for (j = 0; j < bayer2rgb->height; j++) {
if (j < bayer2rgb->height - 1) {
- gst_bayer2rgb_split_and_upsample_horiz (LINE ((j + 1) * 2 + 0),
- LINE ((j + 1) * 2 + 1), src + (j + 1) * src_stride, bayer2rgb->width);
+ gst_bayer2rgb_split_and_upsample_horiz ( /* src line (j + 1) */
+ LINE (tmp, (j + 1) * 2 + 0, bayer2rgb), /* tmp buffer line 2/4/6/0 */
+ LINE (tmp, (j + 1) * 2 + 1, bayer2rgb), /* tmp buffer line 3/5/7/1 */
+ src + (j + 1) * src_stride, bayer2rgb->width);
}
- merge[j & 1] (dest + j * dest_stride,
- LINE (j * 2 - 2), LINE (j * 2 - 1),
- LINE (j * 2 + 0), LINE (j * 2 + 1),
- LINE (j * 2 + 2), LINE (j * 2 + 3), bayer2rgb->width >> 1);
+ merge[j & 1] (dest + j * dest_stride, /* output line j */
+ LINE (tmp, j * 2 - 2, bayer2rgb), /* PREVIOUS: even: BG g0 , odd: GR b0 */
+ LINE (tmp, j * 2 - 1, bayer2rgb), /* PREVIOUS: even: BG r0 , odd: GR g0 */
+ LINE (tmp, j * 2 + 0, bayer2rgb), /* CURRENT: even: BG b1 , odd: GR g1 */
+ LINE (tmp, j * 2 + 1, bayer2rgb), /* CURRENT: even: BG g1 , odd: GR r1 */
+ LINE (tmp, j * 2 + 2, bayer2rgb), /* NEXT: even: BG g2 , odd: GR b2 */
+ LINE (tmp, j * 2 + 3, bayer2rgb), /* NEXT: even: BG r2 , odd: GR g2 */
+ bayer2rgb->width >> 1);
}
g_free (tmp);
--
2.44.1