summaryrefslogtreecommitdiff
path: root/apps/recorder/jpeg_load.c
diff options
context:
space:
mode:
authorAndrew Mahone <andrew.mahone@gmail.com>2009-06-03 06:35:10 +0000
committerAndrew Mahone <andrew.mahone@gmail.com>2009-06-03 06:35:10 +0000
commit2bedde17b6d841ee8910a71cf5343ec8c8fed98b (patch)
tree58538f3ebdcfd885572c5db00c4019fe1d5343c8 /apps/recorder/jpeg_load.c
parent840ab7c72421b2d8dbb1587fe486498599b05a31 (diff)
downloadrockbox-2bedde17b6d841ee8910a71cf5343ec8c8fed98b.tar.gz
rockbox-2bedde17b6d841ee8910a71cf5343ec8c8fed98b.zip
Don't perform YUV->RGB conversion before row output for unscaled loads of greyscale JPEG, as store_row_jpeg already does this.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@21174 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/recorder/jpeg_load.c')
-rw-r--r--apps/recorder/jpeg_load.c27
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);