diff options
Diffstat (limited to 'apps/recorder')
-rw-r--r-- | apps/recorder/jpeg_load.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/apps/recorder/jpeg_load.c b/apps/recorder/jpeg_load.c index 07b79f0b85..027ddaf5a8 100644 --- a/apps/recorder/jpeg_load.c +++ b/apps/recorder/jpeg_load.c | |||
@@ -2144,19 +2144,22 @@ int read_jpeg_fd(int fd, | |||
2144 | { | 2144 | { |
2145 | part = store_row_jpeg(p_jpeg); | 2145 | part = store_row_jpeg(p_jpeg); |
2146 | #ifdef HAVE_LCD_COLOR | 2146 | #ifdef HAVE_LCD_COLOR |
2147 | struct uint8_rgb *qp = part->buf; | 2147 | if (p_jpeg->blocks > 1) |
2148 | struct uint8_rgb *end = qp + bm->width; | ||
2149 | uint8_t y, u, v; | ||
2150 | unsigned r, g, b; | ||
2151 | for (; qp < end; qp++) | ||
2152 | { | 2148 | { |
2153 | y = qp->blue; | 2149 | struct uint8_rgb *qp = part->buf; |
2154 | u = qp->green; | 2150 | struct uint8_rgb *end = qp + bm->width; |
2155 | v = qp->red; | 2151 | uint8_t y, u, v; |
2156 | yuv_to_rgb(y, u, v, &r, &g, &b); | 2152 | unsigned r, g, b; |
2157 | qp->red = r; | 2153 | for (; qp < end; qp++) |
2158 | qp->blue = b; | 2154 | { |
2159 | qp->green = g; | 2155 | y = qp->blue; |
2156 | u = qp->green; | ||
2157 | v = qp->red; | ||
2158 | yuv_to_rgb(y, u, v, &r, &g, &b); | ||
2159 | qp->red = r; | ||
2160 | qp->blue = b; | ||
2161 | qp->green = g; | ||
2162 | } | ||
2160 | } | 2163 | } |
2161 | #endif | 2164 | #endif |
2162 | output_row_8(row, part->buf, &ctx); | 2165 | output_row_8(row, part->buf, &ctx); |