All pastes #1924393 Raw Edit

teuf

public text v1 · immutable
#1924393 ·published 2010-08-24 17:31 UTC
rendered paste body
diff --git a/src/itdb_artwork.c b/src/itdb_artwork.cindex dd6c4ca..9a73188 100644--- a/src/itdb_artwork.c+++ b/src/itdb_artwork.c@@ -333,16 +333,30 @@ static guchar * unpack_RGB_555 (guint16 *pixels, guint bytes_len, guint byte_order) { 	guchar *result;-	guint i;+	guint x;+	guint y;+	guint rowstride;+	guint alignment = 16;+	guint height = 110;+	guint width = 110;  	g_return_val_if_fail (bytes_len < 2*(G_MAXUINT/3), NULL);  	result = g_malloc ((bytes_len/2) * 3); -	for (i = 0; i < bytes_len/2; i++) {+	rowstride = width*2;+	if (alignment) {+	    rowstride = (rowstride + alignment - 1)/alignment * alignment;+	}+	rowstride /= 2; /* FIXME: rowstride in pixel size unit, not bytes */++	for (y = 0; y < height; y++) {+	    for (x = 0; x < width; x++) { 		guint16 cur_pixel;+                guint i; 		/* FIXME: endianness */-		cur_pixel = get_gint16 (pixels[i], byte_order);+		cur_pixel = get_gint16 (pixels[y*rowstride + x], byte_order);+                i = y * width + x; 		/* Unpack pixels */ 		result[3*i] = (cur_pixel & RED_MASK_555) >> RED_SHIFT_555; 		result[3*i+1] = (cur_pixel & GREEN_MASK_555) >> GREEN_SHIFT_555;@@ -352,6 +366,7 @@ unpack_RGB_555 (guint16 *pixels, guint bytes_len, guint byte_order) 		result[3*i] <<= (8 - RED_BITS_555); 		result[3*i+1] <<= (8 - GREEN_BITS_555); 		result[3*i+2] <<= (8 - BLUE_BITS_555);+	    } 	}  	return result;