diff options
Diffstat (limited to 'apps/recorder/resize.c')
-rw-r--r-- | apps/recorder/resize.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/apps/recorder/resize.c b/apps/recorder/resize.c index 1846f5acb1..49b8980ceb 100644 --- a/apps/recorder/resize.c +++ b/apps/recorder/resize.c | |||
@@ -649,15 +649,22 @@ static inline bool scale_v_linear(struct rowset *rset, | |||
649 | static void output_row_32_native_fromyuv(uint32_t row, void * row_in, | 649 | static void output_row_32_native_fromyuv(uint32_t row, void * row_in, |
650 | struct scaler_context *ctx) | 650 | struct scaler_context *ctx) |
651 | { | 651 | { |
652 | #if defined(LCD_STRIDEFORMAT) && LCD_STRIDEFORMAT == VERTICAL_STRIDE | ||
653 | #define DEST_STEP (ctx->bm->height) | ||
654 | #define Y_STEP (1) | ||
655 | #else | ||
656 | #define DEST_STEP (1) | ||
657 | #define Y_STEP (BM_WIDTH(ctx->bm->width,FORMAT_NATIVE,0)) | ||
658 | #endif | ||
659 | |||
652 | int col; | 660 | int col; |
653 | int fb_width = BM_WIDTH(ctx->bm->width,FORMAT_NATIVE,0); | ||
654 | uint8_t dy = DITHERY(row); | 661 | uint8_t dy = DITHERY(row); |
655 | struct uint32_rgb *qp = (struct uint32_rgb *)row_in; | 662 | struct uint32_rgb *qp = (struct uint32_rgb *)row_in; |
656 | SDEBUGF("output_row: y: %lu in: %p\n",row, row_in); | 663 | SDEBUGF("output_row: y: %lu in: %p\n",row, row_in); |
657 | fb_data *dest = (fb_data *)ctx->bm->data + fb_width * row; | 664 | fb_data *dest = (fb_data *)ctx->bm->data + Y_STEP * row; |
658 | int delta = 127; | 665 | int delta = 127; |
659 | unsigned r, g, b, y, u, v; | 666 | unsigned r, g, b, y, u, v; |
660 | 667 | ||
661 | for (col = 0; col < ctx->bm->width; col++) { | 668 | for (col = 0; col < ctx->bm->width; col++) { |
662 | if (ctx->dither) | 669 | if (ctx->dither) |
663 | delta = DITHERXDY(col,dy); | 670 | delta = DITHERXDY(col,dy); |
@@ -669,7 +676,8 @@ static void output_row_32_native_fromyuv(uint32_t row, void * row_in, | |||
669 | r = (31 * r + (r >> 3) + delta) >> 8; | 676 | r = (31 * r + (r >> 3) + delta) >> 8; |
670 | g = (63 * g + (g >> 2) + delta) >> 8; | 677 | g = (63 * g + (g >> 2) + delta) >> 8; |
671 | b = (31 * b + (b >> 3) + delta) >> 8; | 678 | b = (31 * b + (b >> 3) + delta) >> 8; |
672 | *dest++ = LCD_RGBPACK_LCD(r, g, b); | 679 | *dest = LCD_RGBPACK_LCD(r, g, b); |
680 | dest += DEST_STEP; | ||
673 | } | 681 | } |
674 | } | 682 | } |
675 | #endif | 683 | #endif |