Hi Why don't you try "unsigned char" instead of "char" for yuvbuf. or y = (unsigned char)yuvbuf[offset++] - 16; u = (unsigned char)yuvbuf[offset++] - 128; v = (unsigned char)yuvbuf[offset++] - 128; -- Makoto SETOH